[FFmpeg-cvslog] webp: do not call av_frame_free() on the user-provided frame
Justin Ruggles
git at videolan.org
Fri Dec 6 14:14:16 CET 2013
ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Wed Dec 4 16:53:17 2013 -0500| [f51e3a1971045c7ed0c3d9d29d3254a4d940198e] | committer: Justin Ruggles
webp: do not call av_frame_free() on the user-provided frame
Fixes double-free on error.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f51e3a1971045c7ed0c3d9d29d3254a4d940198e
---
libavcodec/webp.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/libavcodec/webp.c b/libavcodec/webp.c
index cf431fe..d531a78 100644
--- a/libavcodec/webp.c
+++ b/libavcodec/webp.c
@@ -1129,10 +1129,8 @@ static int vp8_lossless_decode_frame(AVCodecContext *avctx, AVFrame *p,
if (is_alpha_chunk)
s->image[IMAGE_ROLE_ARGB].is_alpha_primary = 1;
ret = decode_entropy_coded_image(s, IMAGE_ROLE_ARGB, w, h);
- if (ret < 0) {
- av_frame_free(&p);
+ if (ret < 0)
goto free_and_return;
- }
/* apply transformations */
for (i = s->nb_transforms - 1; i >= 0; i--) {
@@ -1150,10 +1148,8 @@ static int vp8_lossless_decode_frame(AVCodecContext *avctx, AVFrame *p,
ret = apply_color_indexing_transform(s);
break;
}
- if (ret < 0) {
- av_frame_free(&p);
+ if (ret < 0)
goto free_and_return;
- }
}
*got_frame = 1;
More information about the ffmpeg-cvslog
mailing list