dv: Add a guard to not overread the ppcm array
authorLuca Barbato <lu_zero@gentoo.org>
Mon, 5 Aug 2013 20:15:24 +0000 (22:15 +0200)
committerLuca Barbato <lu_zero@gentoo.org>
Sat, 7 Sep 2013 09:18:01 +0000 (11:18 +0200)
Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC: libav-stable@libav.org
libavformat/dv.c

index d52be5d..b0dad63 100644 (file)
@@ -108,7 +108,7 @@ static const int dv_audio_frequency[3] = {
  * 3. Audio is always returned as 16bit linear samples: 12bit nonlinear samples
  *    are converted into 16bit linear ones.
  */
-static int dv_extract_audio(uint8_t *frame, uint8_t *ppcm[4],
+static int dv_extract_audio(uint8_t *frame, uint8_t **ppcm,
                             const DVprofile *sys)
 {
     int size, chan, i, j, d, of, smpls, freq, quant, half_ch;
@@ -344,7 +344,7 @@ int avpriv_dv_produce_packet(DVDemuxContext *c, AVPacket *pkt,
                              uint8_t *buf, int buf_size)
 {
     int size, i;
-    uint8_t *ppcm[4] = { 0 };
+    uint8_t *ppcm[5] = { 0 };
 
     if (buf_size < DV_PROFILE_BYTES ||
         !(c->sys = avpriv_dv_frame_profile(c->sys, buf, buf_size)) ||