diff options
Diffstat (limited to 'src/libs/dutil/WixToolset.DUtil/buffutil.cpp')
-rw-r--r-- | src/libs/dutil/WixToolset.DUtil/buffutil.cpp | 6 |
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."); |