av_probe_input_format3: support NULL as buffer. Fixes null ptr deref
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Nov 2012 21:20:44 +0000 (22:20 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 13 Nov 2012 21:21:10 +0000 (22:21 +0100)
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/utils.c

index 0240b0c..4072ac8 100644 (file)
@@ -295,6 +295,10 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score
     AVProbeData lpd = *pd;
     AVInputFormat *fmt1 = NULL, *fmt;
     int score, nodat = 0, score_max=0;
+    const static uint8_t zerobuffer[AVPROBE_PADDING_SIZE];
+
+    if (!lpd.buf)
+        lpd.buf = zerobuffer;
 
     if (lpd.buf_size > 10 && ff_id3v2_match(lpd.buf, ID3v2_DEFAULT_MAGIC)) {
         int id3len = ff_id3v2_tag_len(lpd.buf);