From b736e9edc337b3073139c5b9ca0d138fce564c3c Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Wed, 6 Apr 2022 00:40:10 -0700 Subject: [PATCH] Add check for unexpected EOF to LoadDDSTextureFromFile --- DirectXTex/DirectXTexDDS.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/DirectXTex/DirectXTexDDS.cpp b/DirectXTex/DirectXTexDDS.cpp index b89a9e2..e62ccd7 100644 --- a/DirectXTex/DirectXTexDDS.cpp +++ b/DirectXTex/DirectXTexDDS.cpp @@ -1944,11 +1944,18 @@ HRESULT DirectX::LoadFromDDSFile( } #ifdef WIN32 - if (!ReadFile(hFile.get(), image.GetPixels(), static_cast(image.GetPixelsSize()), &bytesRead, nullptr)) + auto pixelBytes = static_cast(image.GetPixelsSize()); + if (!ReadFile(hFile.get(), image.GetPixels(), pixelBytes, &bytesRead, nullptr)) { image.Release(); return HRESULT_FROM_WIN32(GetLastError()); } + + if (bytesRead != pixelBytes) + { + image.Release(); + return E_FAIL; + } #else inFile.read(reinterpret_cast(image.GetPixels()), image.GetPixelsSize()); if (!inFile)