[FFmpeg-cvslog] avformat/matroskaenc: Check ff_vorbiscomment_length in put_flac_codecpriv( )
Michael Niedermayer
git at videolan.org
Sat May 16 00:16:15 CEST 2015
ffmpeg | branch: release/2.6 | Michael Niedermayer <michaelni at gmx.at> | Mon May 11 15:37:38 2015 +0200| [889a4779eb67688ecdb66daa053e52c2dd01a41f] | committer: Michael Niedermayer
avformat/matroskaenc: Check ff_vorbiscomment_length in put_flac_codecpriv()
Its currently guaranteed to be smaller but its safer to check anyway
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit 66f26b3e8ec075298e7ba329a55893d085bafe96)
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=889a4779eb67688ecdb66daa053e52c2dd01a41f
---
libavformat/matroskaenc.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index ec85651..1dfc5a8 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -545,12 +545,15 @@ static int put_flac_codecpriv(AVFormatContext *s,
"Lavf" : LIBAVFORMAT_IDENT;
AVDictionary *dict = NULL;
uint8_t buf[32], *data, *p;
- int len;
+ int64_t len;
snprintf(buf, sizeof(buf), "0x%"PRIx64, codec->channel_layout);
av_dict_set(&dict, "WAVEFORMATEXTENSIBLE_CHANNEL_MASK", buf, 0);
len = ff_vorbiscomment_length(dict, vendor);
+ if (len >= ((1<<24) - 4))
+ return AVERROR(EINVAL);
+
data = av_malloc(len + 4);
if (!data) {
av_dict_free(&dict);
More information about the ffmpeg-cvslog
mailing list