diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2015-05-16 13:50:38 +0200 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2016-05-19 10:46:45 +0300 |
commit | 704d2bd18be8f134cb9ab19463a3c4eb63233dbd (patch) | |
tree | e43051861206f79ce437ff252996fd7944e2b7b4 /libavformat/mov.c | |
parent | d34826c33d401929b2ff8aee161fd39ad0a73613 (diff) | |
download | ffmpeg-704d2bd18be8f134cb9ab19463a3c4eb63233dbd.tar.gz |
mov: Print reason of loci parsing failure
Signed-off-by: Martin Storsjö <martin@martin.st>
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r-- | libavformat/mov.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c index b4ff4ff513..fc57399b9b 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -226,8 +226,10 @@ static int mov_metadata_loci(MOVContext *c, AVIOContext *pb, unsigned len) double longitude, latitude; const char *key = "location"; - if (len < 4 + 2 + 1 + 1 + 4 + 4 + 4) + if (len < 4 + 2 + 1 + 1 + 4 + 4 + 4) { + av_log(c->fc, AV_LOG_ERROR, "loci too short\n"); return AVERROR_INVALIDDATA; + } avio_skip(pb, 4); // version+flags langcode = avio_rb16(pb); @@ -235,13 +237,18 @@ static int mov_metadata_loci(MOVContext *c, AVIOContext *pb, unsigned len) len -= 6; len -= avio_get_str(pb, len, buf, sizeof(buf)); // place name - if (len < 1) + if (len < 1) { + av_log(c->fc, AV_LOG_ERROR, "place name too long\n"); return AVERROR_INVALIDDATA; + } avio_skip(pb, 1); // role len -= 1; - if (len < 14) + if (len < 14) { + av_log(c->fc, AV_LOG_ERROR, + "loci too short (%u bytes left, need at least %d)\n", len, 14); return AVERROR_INVALIDDATA; + } longitude = ((int32_t) avio_rb32(pb)) / (float) (1 << 16); latitude = ((int32_t) avio_rb32(pb)) / (float) (1 << 16); |