aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2013-02-21 22:00:19 +0100
committerMichael Niedermayer <michaelni@gmx.at>2013-02-22 22:53:11 +0100
commit469cb61193861baf46cce76f98985b026b08cd8d (patch)
tree097412b8e5f20bf07698f89bbf85b4b575aa8092
parenta642be972d4861159f8bf4ef47afcc8f60a2f02b (diff)
downloadffmpeg-469cb61193861baf46cce76f98985b026b08cd8d.tar.gz
avcodec_decode_audio4: check got_frame_ptr before handling initial skip
Fixes out of array accesses Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 8a6449167a6da8cb747cfe3502ae86ffaac2ed48) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavcodec/utils.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 12265a95ea..6552b9ee8d 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1767,7 +1767,7 @@ int attribute_align_arg avcodec_decode_audio4(AVCodecContext *avctx,
av_log(avctx, AV_LOG_DEBUG, "skip %d samples due to side data\n",
avctx->internal->skip_samples);
}
- if (avctx->internal->skip_samples) {
+ if (avctx->internal->skip_samples && *got_frame_ptr) {
if(frame->nb_samples <= avctx->internal->skip_samples){
*got_frame_ptr = 0;
avctx->internal->skip_samples -= frame->nb_samples;