oggenc: accept only STREAMINFO extradata
authorAnton Khirnov <anton@khirnov.net>
Thu, 28 Aug 2014 18:51:51 +0000 (18:51 +0000)
committerAnton Khirnov <anton@khirnov.net>
Thu, 6 Nov 2014 08:04:32 +0000 (09:04 +0100)
The reasoning is the same as for
0097cbea695e534fce39958ccd103af2fbf65831.

libavformat/oggenc.c

index 8f08da1..c7d6491 100644 (file)
@@ -295,12 +295,10 @@ static int ogg_build_flac_headers(AVCodecContext *avctx,
                                   OGGStreamContext *oggstream, int bitexact,
                                   AVDictionary **m)
 {
-    enum FLACExtradataFormat format;
-    uint8_t *streaminfo;
     uint8_t *p;
 
-    if (!avpriv_flac_is_extradata_valid(avctx, &format, &streaminfo))
-        return -1;
+    if (avctx->extradata_size < FLAC_STREAMINFO_SIZE)
+        return AVERROR(EINVAL);
 
     // first packet: STREAMINFO
     oggstream->header_len[0] = 51;
@@ -316,7 +314,7 @@ static int ogg_build_flac_headers(AVCodecContext *avctx,
     bytestream_put_buffer(&p, "fLaC", 4);
     bytestream_put_byte(&p, 0x00); // streaminfo
     bytestream_put_be24(&p, 34);
-    bytestream_put_buffer(&p, streaminfo, FLAC_STREAMINFO_SIZE);
+    bytestream_put_buffer(&p, avctx->extradata, FLAC_STREAMINFO_SIZE);
 
     // second packet: VorbisComment
     p = ogg_write_vorbiscomment(4, bitexact, &oggstream->header_len[1], m, 0);