projects
/
platform
/
upstream
/
libav.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
b73a892
)
webp: do not call av_frame_free() on the user-provided frame
author
Justin Ruggles
<justin.ruggles@gmail.com>
Wed, 4 Dec 2013 21:53:17 +0000
(16:53 -0500)
committer
Justin Ruggles
<justin.ruggles@gmail.com>
Fri, 6 Dec 2013 01:36:54 +0000
(20:36 -0500)
Fixes double-free on error.
libavcodec/webp.c
patch
|
blob
|
history
diff --git
a/libavcodec/webp.c
b/libavcodec/webp.c
index
cf431fe
..
d531a78
100644
(file)
--- 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;