Browse code

dv: Fix null pointer dereference due to ach=0

Fixes part2 of CVE-2011-3929

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Reviewed-by: Roman Shaposhnik <roman@shaposhnik.org>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>

Michael Niedermayer authored on 2012/01/25 02:51:40
Showing 1 changed files
... ...
@@ -384,7 +384,8 @@ int avpriv_dv_produce_packet(DVDemuxContext *c, AVPacket *pkt,
384 384
        c->audio_pkt[i].pts  = c->abytes * 30000*8 / c->ast[i]->codec->bit_rate;
385 385
        ppcm[i] = c->audio_buf[i];
386 386
     }
387
-    dv_extract_audio(buf, ppcm, c->sys);
387
+    if (c->ach)
388
+        dv_extract_audio(buf, ppcm, c->sys);
388 389
 
389 390
     /* We work with 720p frames split in half, thus even frames have
390 391
      * channels 0,1 and odd 2,3. */