diff options
author | Anton Khirnov <anton@khirnov.net> | 2014-08-28 18:51:51 +0000 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2014-11-06 09:04:32 +0100 |
commit | e839de0f851535b5e19256b52f9865f0cb768a7c (patch) | |
tree | a29cb5a27cfb8f434dce1b5af11025895a51471e | |
parent | c070a8751597e3aa1b443e88464da785d8966b14 (diff) | |
download | ffmpeg-e839de0f851535b5e19256b52f9865f0cb768a7c.tar.gz |
oggenc: accept only STREAMINFO extradata
The reasoning is the same as for
0097cbea695e534fce39958ccd103af2fbf65831.
-rw-r--r-- | libavformat/oggenc.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/libavformat/oggenc.c b/libavformat/oggenc.c index 8f08da189f..c7d6491daf 100644 --- a/libavformat/oggenc.c +++ b/libavformat/oggenc.c @@ -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); |