mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-02-09 14:14:39 +02:00
avcodec/flashsv: Check inflate() for failure
Fixes: CID1047223 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
7796d740bd
commit
8f6432cd77
@ -149,7 +149,9 @@ static int flashsv2_prime(FlashSVContext *s, const uint8_t *src, int size)
|
|||||||
zstream->avail_in = size;
|
zstream->avail_in = size;
|
||||||
zstream->next_out = data;
|
zstream->next_out = data;
|
||||||
zstream->avail_out = s->block_size * 3;
|
zstream->avail_out = s->block_size * 3;
|
||||||
inflate(zstream, Z_SYNC_FLUSH);
|
zret = inflate(zstream, Z_SYNC_FLUSH);
|
||||||
|
if (zret != Z_OK && zret != Z_STREAM_END)
|
||||||
|
return AVERROR_UNKNOWN;
|
||||||
remaining = s->block_size * 3 - zstream->avail_out;
|
remaining = s->block_size * 3 - zstream->avail_out;
|
||||||
|
|
||||||
if ((zret = inflateReset(zstream)) != Z_OK) {
|
if ((zret = inflateReset(zstream)) != Z_OK) {
|
||||||
@ -165,7 +167,9 @@ static int flashsv2_prime(FlashSVContext *s, const uint8_t *src, int size)
|
|||||||
* out of the output from above. See section 3.2.4 of RFC 1951. */
|
* out of the output from above. See section 3.2.4 of RFC 1951. */
|
||||||
zstream->next_in = zlib_header;
|
zstream->next_in = zlib_header;
|
||||||
zstream->avail_in = sizeof(zlib_header);
|
zstream->avail_in = sizeof(zlib_header);
|
||||||
inflate(zstream, Z_SYNC_FLUSH);
|
zret = inflate(zstream, Z_SYNC_FLUSH);
|
||||||
|
if (zret != Z_OK)
|
||||||
|
return AVERROR_UNKNOWN;
|
||||||
while (remaining > 0) {
|
while (remaining > 0) {
|
||||||
unsigned block_size = FFMIN(UINT16_MAX, remaining);
|
unsigned block_size = FFMIN(UINT16_MAX, remaining);
|
||||||
uint8_t header[5];
|
uint8_t header[5];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user