From 09d53590105f9256d99a14b0fd7394913d058a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Saffran?= Date: Wed, 29 Apr 2026 11:26:00 -0700 Subject: [PATCH 1/2] fix security issue --- lib/DxcSupport/FileIOHelper.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/DxcSupport/FileIOHelper.cpp b/lib/DxcSupport/FileIOHelper.cpp index ed2593dfc3..91d75d5dd4 100644 --- a/lib/DxcSupport/FileIOHelper.cpp +++ b/lib/DxcSupport/FileIOHelper.cpp @@ -527,14 +527,16 @@ static bool TryCreateEmptyBlobUtf(UINT32 codePage, IMalloc *pMalloc, IDxcBlobEncoding **ppBlobEncoding) { if (codePage == CP_UTF8) { InternalDxcBlobUtf8 *internalUtf8; - IFR(InternalDxcBlobUtf8::CreateFromMalloc(nullptr, pMalloc, 0, true, - codePage, &internalUtf8)); + if (DXC_FAILED((InternalDxcBlobUtf8::CreateFromMalloc( + nullptr, pMalloc, 0, true, codePage, &internalUtf8)))) + return false; *ppBlobEncoding = internalUtf8; return true; } else if (codePage == DXC_CP_WIDE) { InternalDxcBlobWide *internalWide; - IFR(InternalDxcBlobWide::CreateFromMalloc(nullptr, pMalloc, 0, true, - codePage, &internalWide)); + if (DXC_FAILED(InternalDxcBlobWide::CreateFromMalloc( + nullptr, pMalloc, 0, true, codePage, &internalWide))) + return false; *ppBlobEncoding = internalWide; return true; } @@ -551,14 +553,16 @@ static bool TryCreateBlobUtfFromBlob(IDxcBlob *pFromBlob, UINT32 codePage, pFromBlob->GetBufferSize(), codePage)) { if (codePage == CP_UTF8) { InternalDxcBlobUtf8 *internalUtf8; - IFR(InternalDxcBlobUtf8::CreateFromBlob(pFromBlob, pMalloc, true, - codePage, &internalUtf8)); + if (DXC_FAILED(InternalDxcBlobUtf8::CreateFromBlob( + pFromBlob, pMalloc, true, codePage, &internalUtf8))) + return false; *ppBlobEncoding = internalUtf8; return true; } else if (codePage == DXC_CP_WIDE) { InternalDxcBlobWide *internalWide; - IFR(InternalDxcBlobWide::CreateFromBlob(pFromBlob, pMalloc, true, - codePage, &internalWide)); + if (DXC_FAILED(InternalDxcBlobWide::CreateFromBlob( + pFromBlob, pMalloc, true, codePage, &internalWide))) + return false; *ppBlobEncoding = internalWide; return true; } From 04b859dd6f0efb253db616ad8e82cde238ca4bf0 Mon Sep 17 00:00:00 2001 From: joaosaffran Date: Wed, 29 Apr 2026 13:51:57 -0700 Subject: [PATCH 2/2] Update lib/DxcSupport/FileIOHelper.cpp Co-authored-by: Deric C. --- lib/DxcSupport/FileIOHelper.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/DxcSupport/FileIOHelper.cpp b/lib/DxcSupport/FileIOHelper.cpp index 91d75d5dd4..b2f3dfb67d 100644 --- a/lib/DxcSupport/FileIOHelper.cpp +++ b/lib/DxcSupport/FileIOHelper.cpp @@ -527,8 +527,8 @@ static bool TryCreateEmptyBlobUtf(UINT32 codePage, IMalloc *pMalloc, IDxcBlobEncoding **ppBlobEncoding) { if (codePage == CP_UTF8) { InternalDxcBlobUtf8 *internalUtf8; - if (DXC_FAILED((InternalDxcBlobUtf8::CreateFromMalloc( - nullptr, pMalloc, 0, true, codePage, &internalUtf8)))) + if (DXC_FAILED(InternalDxcBlobUtf8::CreateFromMalloc( + nullptr, pMalloc, 0, true, codePage, &internalUtf8))) return false; *ppBlobEncoding = internalUtf8; return true;