aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2016-08-19 10:28:22 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2016-09-05 01:01:35 +0200
commitca92adafb0effac6c51a12f90a593ba7e8b3ee90 (patch)
tree6ea868c56bcf8b576afe62554b0d689bd3b7829e
parent815a4439c38489cabf7554ba3c722c135a700db3 (diff)
downloadffmpeg-ca92adafb0effac6c51a12f90a593ba7e8b3ee90.tar.gz
avformat/swfdec: Fix inflate() error code check
Fixes infinite loop Fixes endless.poc Found-by: 连一汉 <lianyihan@360.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit a453bbb68f3eec202673728988bba3bc76071761) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libavformat/swfdec.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libavformat/swfdec.c b/libavformat/swfdec.c
index eb17e82e08..518ca1fcb9 100644
--- a/libavformat/swfdec.c
+++ b/libavformat/swfdec.c
@@ -119,10 +119,10 @@ retry:
z->avail_out = buf_size;
ret = inflate(z, Z_NO_FLUSH);
- if (ret < 0)
- return AVERROR(EINVAL);
if (ret == Z_STREAM_END)
return AVERROR_EOF;
+ if (ret != Z_OK)
+ return AVERROR(EINVAL);
if (buf_size - z->avail_out == 0)
goto retry;