[FFmpeg-devel] [PATCH] avformat/http: return error when error occurs during gzip inflating

renwei renw1991 at gmail.com
Thu Apr 18 12:00:17 EEST 2024


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)



More information about the ffmpeg-devel mailing list