From b6270f48cabf8abc9b135cc68feea7b40e802797 Mon Sep 17 00:00:00 2001 From: Dejan Mircevski Date: Mon, 25 Apr 2016 15:12:54 -0400 Subject: [PATCH] Avoid dereferencing invalid spv_binary. Fixes #371. --- external/vulkancts/framework/vulkan/vkSpirVAsm.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/external/vulkancts/framework/vulkan/vkSpirVAsm.cpp b/external/vulkancts/framework/vulkan/vkSpirVAsm.cpp index db39634..464bdbe 100644 --- a/external/vulkancts/framework/vulkan/vkSpirVAsm.cpp +++ b/external/vulkancts/framework/vulkan/vkSpirVAsm.cpp @@ -59,8 +59,12 @@ bool assembleSpirV (const SpirVAsmSource* program, std::vector* dst, S buildInfo->compileTimeUs = deGetMicroseconds() - compileStartTime; buildInfo->compileOk = (compileOk == SPV_SUCCESS); - dst->resize(binary->wordCount); - std::copy(&binary->code[0], &binary->code[0] + binary->wordCount, dst->begin()); + if (buildInfo->compileOk) + { + DE_ASSERT(binary->wordCount > 0); + dst->resize(binary->wordCount); + std::copy(&binary->code[0], &binary->code[0] + binary->wordCount, dst->begin()); + } spvBinaryDestroy(binary); spvDiagnosticDestroy(diagnostic); -- 2.7.4