From 13ec6624b3507052d8a0e14cee39b49e3c99450f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Thu, 1 Apr 2021 14:34:04 +0300 Subject: [PATCH] mov: Don't export unknown/unhandled metadata types as if they were UTF8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They can be other incompatible text encodings (such as UTF-16), or even binary data. Signed-off-by: Martin Storsjö --- libavformat/mov.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libavformat/mov.c b/libavformat/mov.c index 329bf3b207..a37a9cc917 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -501,6 +501,14 @@ retry: av_free(str); return AVERROR_INVALIDDATA; } + } else if (data_type > 1 && data_type != 4) { + // data_type can be 0 if not set at all above. data_type 1 means + // UTF8 and 4 means "UTF8 sort". For any other type (UTF16 or e.g. + // a picture), don't return it blindly in a string that is supposed + // to be UTF8 text. + av_log(c->fc, AV_LOG_WARNING, "Skipping unhandled metadata %s of type %d\n", key, data_type); + av_free(str); + return 0; } else { int ret = ffio_read_size(pb, str, str_size); if (ret < 0) {