浏览代码

[bug] Fix memory leak in dxil validator (#4966)

We would create the dxil runtime reflection object but never free it.
Using a unique_ptr here does the job.

Found by running external tests with appverifier enabled.
David Peixotto 2 年之前
父节点
当前提交
661f7cefc2
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      lib/HLSL/DxilValidation.cpp

+ 1 - 1
lib/HLSL/DxilValidation.cpp

@@ -5563,7 +5563,7 @@ static void VerifyRDATMatches(_In_ ValidationContext &ValCtx,
   VerifyBlobPartMatches(ValCtx, PartName, pWriter.get(), pRDATData, RDATSize);
 
   // Verify no errors when runtime reflection from RDAT:
-  RDAT::DxilRuntimeReflection *pReflection = RDAT::CreateDxilRuntimeReflection();
+  unique_ptr<RDAT::DxilRuntimeReflection> pReflection(RDAT::CreateDxilRuntimeReflection());
   if (!pReflection->InitFromRDAT(pRDATData, RDATSize)) {
     ValCtx.EmitFormatError(ValidationRule::ContainerPartMatches, { PartName });
     return;