diff options
Diffstat (limited to 'src/burn/engine/cabextract.cpp')
| -rw-r--r-- | src/burn/engine/cabextract.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/burn/engine/cabextract.cpp b/src/burn/engine/cabextract.cpp index 5663c3f7..2140130d 100644 --- a/src/burn/engine/cabextract.cpp +++ b/src/burn/engine/cabextract.cpp | |||
| @@ -833,9 +833,13 @@ static UINT FAR DIAMONDAPI CabWrite( | |||
| 833 | 833 | ||
| 834 | case BURN_CAB_OPERATION_STREAM_TO_BUFFER: | 834 | case BURN_CAB_OPERATION_STREAM_TO_BUFFER: |
| 835 | // copy to target buffer | 835 | // copy to target buffer |
| 836 | memcpy_s(pContext->Cabinet.pbTargetBuffer + pContext->Cabinet.iTargetBuffer, pContext->Cabinet.cbTargetBuffer - pContext->Cabinet.iTargetBuffer, pv, cb); | 836 | if (memcpy_s(pContext->Cabinet.pbTargetBuffer + pContext->Cabinet.iTargetBuffer, pContext->Cabinet.cbTargetBuffer - pContext->Cabinet.iTargetBuffer, pv, cb)) |
| 837 | pContext->Cabinet.iTargetBuffer += cb; | 837 | { |
| 838 | hr = E_INSUFFICIENT_BUFFER; | ||
| 839 | ExitOnRootFailure(hr, "Failed to copy data to target buffer during cabinet extraction."); | ||
| 840 | } | ||
| 838 | 841 | ||
| 842 | pContext->Cabinet.iTargetBuffer += cb; | ||
| 839 | cbWrite = cb; | 843 | cbWrite = cb; |
| 840 | break; | 844 | break; |
| 841 | 845 | ||
