summaryrefslogtreecommitdiffstats
path: root/libavcodec/decode.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2017-10-13 18:59:16 +0200
committerJames Almer <jamrial@gmail.com>2017-10-29 21:25:49 -0300
commit4776c61424fa32394e251e9769e1ad2c2fa55598 (patch)
tree59c492ead8ca105f2df446696a47fd6269f78b25 /libavcodec/decode.c
parent195dd5c59c89b125b89078c736ae107bcaf23b37 (diff)
downloadffmpeg-streaming-4776c61424fa32394e251e9769e1ad2c2fa55598.zip
ffmpeg-streaming-4776c61424fa32394e251e9769e1ad2c2fa55598.tar.gz
decode: avoid leaks on failure in ff_get_buffer()
If the get_buffer() call fails, the frame might have some side data already set. Make sure it gets freed. Merges Libav commit de77671438c24ffea93398c8dc885d4dd04477de. Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/decode.c')
-rw-r--r--libavcodec/decode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/libavcodec/decode.c b/libavcodec/decode.c
index 15fc82a..86fe5ae 100644
--- a/libavcodec/decode.c
+++ b/libavcodec/decode.c
@@ -1598,6 +1598,9 @@ end:
frame->height = avctx->height;
}
+ if (ret < 0)
+ av_frame_unref(frame);
+
return ret;
}
OpenPOWER on IntegriCloud