summaryrefslogtreecommitdiff
path: root/src/libs/dutil/WixToolset.DUtil/buffutil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/buffutil.cpp')
-rw-r--r--src/libs/dutil/WixToolset.DUtil/buffutil.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/buffutil.cpp b/src/libs/dutil/WixToolset.DUtil/buffutil.cpp
index b6d58cc0..acde4dc9 100644
--- a/src/libs/dutil/WixToolset.DUtil/buffutil.cpp
+++ b/src/libs/dutil/WixToolset.DUtil/buffutil.cpp
@@ -508,10 +508,14 @@ static HRESULT EnsureBufferSize(
508{ 508{
509 HRESULT hr = S_OK; 509 HRESULT hr = S_OK;
510 SIZE_T cbTarget = ((cbSize / BUFFER_INCREMENT) + 1) * BUFFER_INCREMENT; 510 SIZE_T cbTarget = ((cbSize / BUFFER_INCREMENT) + 1) * BUFFER_INCREMENT;
511 SIZE_T cbCurrent = 0;
511 512
512 if (*ppbBuffer) 513 if (*ppbBuffer)
513 { 514 {
514 if (MemSize(*ppbBuffer) < cbTarget) 515 hr = MemSizeChecked(*ppbBuffer, &cbCurrent);
516 BuffExitOnFailure(hr, "Failed to get current buffer size.");
517
518 if (cbCurrent < cbTarget)
515 { 519 {
516 LPVOID pv = MemReAlloc(*ppbBuffer, cbTarget, TRUE); 520 LPVOID pv = MemReAlloc(*ppbBuffer, cbTarget, TRUE);
517 BuffExitOnNull(pv, hr, E_OUTOFMEMORY, "Failed to reallocate buffer."); 521 BuffExitOnNull(pv, hr, E_OUTOFMEMORY, "Failed to reallocate buffer.");