[FFmpeg-devel] [PATCH 4/5] avcodec/sunrast: fix leak in sunrast_decode_frame()
Lidong Yan
yldhome2d2 at gmail.com
Sun Jun 29 09:45:25 EEST 2025
In sunrast_decode_frame(), we use av_malloc_array() allocates memory
to ptr and ptr2. However if buf_end - buf < 1, this function returns
error code without freeing this memory thus cause a leak. Add av_freep()
before return.
Signed-off-by: Lidong Yan <502024330056 at smail.nju.edu.cn>
---
libavcodec/sunrast.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/libavcodec/sunrast.c b/libavcodec/sunrast.c
index 9e49c4f275..cc27838f5b 100644
--- a/libavcodec/sunrast.c
+++ b/libavcodec/sunrast.c
@@ -163,8 +163,10 @@ static int sunrast_decode_frame(AVCodecContext *avctx, AVFrame *p,
x = 0;
while (ptr != end && buf < buf_end) {
run = 1;
- if (buf_end - buf < 1)
+ if (buf_end - buf < 1) {
+ av_freep(&ptr2);
return AVERROR_INVALIDDATA;
+ }
if ((value = *buf++) == RLE_TRIGGER) {
run = *buf++ + 1;
--
2.50.0.106.gf0135a9047.dirty
More information about the ffmpeg-devel
mailing list