Browse Source

mov: Fix parsing short loci

Previously, we required the minimum number of bytes required for
the full box. Don't strictly require the astronomical body and additional
notes fields, but do require an altitude field (which currently isn't
parsed). This matches the initial length check at the start of the function
(which doesn't know about the variable length place field).

Signed-off-by: Martin Storsjö <martin@martin.st>
tags/n3.1
Michael Niedermayer Martin Storsjö 10 years ago
parent
commit
f126365cda
1 changed files with 2 additions and 2 deletions
  1. +2
    -2
      libavformat/mov.c

+ 2
- 2
libavformat/mov.c View File

@@ -244,9 +244,9 @@ static int mov_metadata_loci(MOVContext *c, AVIOContext *pb, unsigned len)
avio_skip(pb, 1); // role
len -= 1;

if (len < 14) {
if (len < 12) {
av_log(c->fc, AV_LOG_ERROR,
"loci too short (%u bytes left, need at least %d)\n", len, 14);
"loci too short (%u bytes left, need at least %d)\n", len, 12);
return AVERROR_INVALIDDATA;
}
longitude = ((int32_t) avio_rb32(pb)) / (float) (1 << 16);


Loading…
Cancel
Save