mirror of
https://github.com/facebook/zstd.git
synced 2025-10-08 00:04:02 -04:00
fuzzer error fix
This commit is contained in:
parent
a06e953db9
commit
a1d89424c2
@ -2177,24 +2177,24 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case zdss_flush:
|
case zdss_flush:
|
||||||
if (op != NULL) {
|
{
|
||||||
size_t const toFlushSize = zds->outEnd - zds->outStart;
|
size_t const toFlushSize = zds->outEnd - zds->outStart;
|
||||||
size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize);
|
size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize);
|
||||||
|
|
||||||
op += flushedSize;
|
op = op ? op + flushedSize : op;
|
||||||
|
|
||||||
zds->outStart += flushedSize;
|
zds->outStart += flushedSize;
|
||||||
if (flushedSize == toFlushSize) { /* flush completed */
|
if (flushedSize == toFlushSize) { /* flush completed */
|
||||||
zds->streamStage = zdss_read;
|
zds->streamStage = zdss_read;
|
||||||
if ( (zds->outBuffSize < zds->fParams.frameContentSize)
|
if ( (zds->outBuffSize < zds->fParams.frameContentSize)
|
||||||
&& (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) {
|
&& (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) {
|
||||||
DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)",
|
DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)",
|
||||||
(int)(zds->outBuffSize - zds->outStart),
|
(int)(zds->outBuffSize - zds->outStart),
|
||||||
(U32)zds->fParams.blockSizeMax);
|
(U32)zds->fParams.blockSizeMax);
|
||||||
zds->outStart = zds->outEnd = 0;
|
zds->outStart = zds->outEnd = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} }
|
} }
|
||||||
/* cannot complete flush */
|
/* cannot complete flush */
|
||||||
someMoreWork = 0;
|
someMoreWork = 0;
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user