avformat/oggenc: check for stream private data in ogg_free()
authorJames Almer <jamrial@gmail.com>
Thu, 22 Jun 2017 18:51:28 +0000 (15:51 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 22 Jun 2017 19:12:51 +0000 (16:12 -0300)
Fixes a NULL pointer derefence when ogg_init() returns a failure and
a stream's private data was not yet allocated.

This is a regression since 3c5a53cdfa099bba8bd951f95b85727b4b3b5d68

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavformat/oggenc.c

index 7c1115a..10c4eda 100644 (file)
@@ -743,6 +743,8 @@ static void ogg_free(AVFormatContext *s)
     for (i = 0; i < s->nb_streams; i++) {
         AVStream *st = s->streams[i];
         OGGStreamContext *oggstream = st->priv_data;
+        if (!oggstream)
+            continue;
         if (st->codecpar->codec_id == AV_CODEC_ID_FLAC ||
             st->codecpar->codec_id == AV_CODEC_ID_SPEEX ||
             st->codecpar->codec_id == AV_CODEC_ID_OPUS ||