summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
diff options
context:
space:
mode:
authorZhao Zhili <quinkblack@foxmail.com>2020-07-12 00:26:58 +0800
committerMichael Niedermayer <michael@niedermayer.cc>2020-07-16 17:44:53 +0200
commitaf7b1031e1e670e4a43c3ff4beb9c5931084876b (patch)
tree6da0350b7f2215da60cf79520c31f759168d7a2b /libavformat/mov.c
parent663f02441540d6aa870c76cf31fc0e2616c27404 (diff)
avformat/mov: fix atom type to string conversion
The conversion was endian-dependent, and it may contain non-printable characters. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 7f8413c6c9..d16840f3df 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -297,7 +297,7 @@ static int mov_metadata_hmmt(MOVContext *c, AVIOContext *pb, unsigned len)
static int mov_read_udta_string(MOVContext *c, AVIOContext *pb, MOVAtom atom)
{
- char tmp_key[5];
+ char tmp_key[AV_FOURCC_MAX_STRING_SIZE] = {0};
char key2[32], language[4] = {0};
char *str = NULL;
const char *key = NULL;
@@ -444,8 +444,7 @@ retry:
str_size = atom.size;
if (c->export_all && !key) {
- snprintf(tmp_key, 5, "%.4s", (char*)&atom.type);
- key = tmp_key;
+ key = av_fourcc_make_string(tmp_key, atom.type);
}
if (!key)
@@ -7024,8 +7023,8 @@ static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
avio_skip(pb, left);
else if (left < 0) {
av_log(c->fc, AV_LOG_WARNING,
- "overread end of atom '%.4s' by %"PRId64" bytes\n",
- (char*)&a.type, -left);
+ "overread end of atom '%s' by %"PRId64" bytes\n",
+ av_fourcc2str(a.type), -left);
avio_seek(pb, left, SEEK_CUR);
}
}