diff --git a/CPP/7zip/Compress/ZstdDecoder.cpp b/CPP/7zip/Compress/ZstdDecoder.cpp index 071b0f6c..425043dd 100644 --- a/CPP/7zip/Compress/ZstdDecoder.cpp +++ b/CPP/7zip/Compress/ZstdDecoder.cpp @@ -87,6 +87,10 @@ HRESULT CDecoder::CodeSpec(ISequentialInStream * inStream, _dstBuf = MyAlloc(_dstBufSize); if (!_dstBuf) return E_OUTOFMEMORY; + + result = ZSTD_DCtx_setParameter(_ctx, ZSTD_d_windowLogMax, ZSTD_WINDOWLOG_MAX); + if (ZSTD_isError(result)) + return E_OUTOFMEMORY; } else { ZSTD_resetDStream(_ctx); } @@ -115,11 +119,11 @@ HRESULT CDecoder::CodeSpec(ISequentialInStream * inStream, /* @Igor: would be nice, if we have an API to store the errmsg */ case ZSTD_error_memory_allocation: return E_OUTOFMEMORY; - case ZSTD_error_version_unsupported: case ZSTD_error_frameParameter_unsupported: + case ZSTD_error_parameter_unsupported: + case ZSTD_error_version_unsupported: return E_NOTIMPL; case ZSTD_error_frameParameter_windowTooLarge: - case ZSTD_error_parameter_unsupported: case ZSTD_error_parameter_outOfBound: return E_INVALIDARG; default: