diff mbox

[FFmpeg-devel] matroskadec: fix NULL pointer dereference in webm_dash_manifest_read_header

Message ID 87bfcd49-9557-aa44-73f1-1817a378afdf@googlemail.com
State Accepted
Commit ff100c9dd97d2f1f456ff38b192edf84f9744738
Headers show

Commit Message

Andreas Cadhalpun Nov. 7, 2016, 11:44 p.m. UTC
The code assumes that s->streams[0] is valid.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
---
 libavformat/matroskadec.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Michael Niedermayer Nov. 8, 2016, 12:12 a.m. UTC | #1
On Tue, Nov 08, 2016 at 12:44:56AM +0100, Andreas Cadhalpun wrote:
> The code assumes that s->streams[0] is valid.
> 
> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
> ---
>  libavformat/matroskadec.c | 5 +++++
>  1 file changed, 5 insertions(+)

should be ok

[...]
Andreas Cadhalpun Nov. 8, 2016, 7:21 p.m. UTC | #2
On 08.11.2016 01:12, Michael Niedermayer wrote:
> On Tue, Nov 08, 2016 at 12:44:56AM +0100, Andreas Cadhalpun wrote:
>> The code assumes that s->streams[0] is valid.
>>
>> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
>> ---
>>  libavformat/matroskadec.c | 5 +++++
>>  1 file changed, 5 insertions(+)
> 
> should be ok

Pushed.

Best regards,
Andreas
diff mbox

Patch

diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 32f5e49..130d92e 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -3772,6 +3772,11 @@  static int webm_dash_manifest_read_header(AVFormatContext *s)
         av_log(s, AV_LOG_ERROR, "Failed to read file headers\n");
         return -1;
     }
+    if (!s->nb_streams) {
+        matroska_read_close(s);
+        av_log(s, AV_LOG_ERROR, "No streams found\n");
+        return AVERROR_INVALIDDATA;
+    }
 
     if (!matroska->is_live) {
         buf = av_asprintf("%g", matroska->duration);