when there is error in http gizp data, return 0 will cause endless
and meanningless loop in retry_transfer_wrapper function.
---
 libavformat/http.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/libavformat/http.c b/libavformat/http.c
index ed20359552..6e712383c1 100644
--- a/libavformat/http.c
+++ b/libavformat/http.c
@@ -1657,10 +1657,11 @@ static int http_buf_read_compressed(URLContext *h, 
uint8_t *buf, int size)
     s->inflate_stream.next_out  = buf;
 
     ret = inflate(&s->inflate_stream, Z_SYNC_FLUSH);
-    if (ret != Z_OK && ret != Z_STREAM_END)
-        av_log(h, AV_LOG_WARNING, "inflate return value: %d, %s\n",
+    if (ret != Z_OK && ret != Z_STREAM_END) {
+         av_log(h, AV_LOG_WARNING, "inflate return value: %d, %s\n",
                ret, s->inflate_stream.msg);
-
+         return AVERROR(EIO);
+    }
     return size - s->inflate_stream.avail_out;
 }
 #endif /* CONFIG_ZLIB */
-- 
2.39.3 (Apple Git-145)

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to