aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2024-03-25 00:06:08 -0300
committerJames Almer <jamrial@gmail.com>2024-03-25 23:20:51 -0300
commitabcdd3aed7c9c1759fcd54b287b1f7a48067822f (patch)
tree39c4817d5f5019be5d9a069df89cf655d8be6825
parentdd733b2be472cea766c62984237533b239e9a93d (diff)
downloadffmpeg-abcdd3aed7c9c1759fcd54b287b1f7a48067822f.tar.gz
avformat/mov: don't use cur_item_id as array index
Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
-rw-r--r--libavformat/mov.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index f954b924a0..9f2ea97a5b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -8085,7 +8085,6 @@ static int mov_read_iloc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
memset(c->heif_item + c->nb_heif_item, 0,
sizeof(*c->heif_item) * (item_count - c->nb_heif_item));
c->nb_heif_item = FFMAX(c->nb_heif_item, item_count);
- c->cur_item_id = 0;
av_log(c->fc, AV_LOG_TRACE, "iloc: item_count %d\n", item_count);
for (int i = 0; i < item_count; i++) {
@@ -8127,7 +8126,7 @@ static int mov_read_iloc(MOVContext *c, AVIOContext *pb, MOVAtom atom)
return atom.size;
}
-static int mov_read_infe(MOVContext *c, AVIOContext *pb, MOVAtom atom)
+static int mov_read_infe(MOVContext *c, AVIOContext *pb, MOVAtom atom, int idx)
{
AVBPrint item_name;
int64_t size = atom.size;
@@ -8164,21 +8163,19 @@ static int mov_read_infe(MOVContext *c, AVIOContext *pb, MOVAtom atom)
avio_skip(pb, size);
if (ret)
- av_bprint_finalize(&item_name, &c->heif_item[c->cur_item_id].name);
- c->heif_item[c->cur_item_id].item_id = item_id;
- c->heif_item[c->cur_item_id].type = item_type;
+ av_bprint_finalize(&item_name, &c->heif_item[idx].name);
+ c->heif_item[idx].item_id = item_id;
+ c->heif_item[idx].type = item_type;
switch (item_type) {
case MKTAG('a','v','0','1'):
case MKTAG('h','v','c','1'):
- ret = heif_add_stream(c, &c->heif_item[c->cur_item_id]);
+ ret = heif_add_stream(c, &c->heif_item[idx]);
if (ret < 0)
return ret;
break;
}
- c->cur_item_id++;
-
return 0;
}
@@ -8210,14 +8207,13 @@ static int mov_read_iinf(MOVContext *c, AVIOContext *pb, MOVAtom atom)
memset(c->heif_item + c->nb_heif_item, 0,
sizeof(*c->heif_item) * (entry_count - c->nb_heif_item));
c->nb_heif_item = FFMAX(c->nb_heif_item, entry_count);
- c->cur_item_id = 0;
for (int i = 0; i < entry_count; i++) {
MOVAtom infe;
infe.size = avio_rb32(pb) - 8;
infe.type = avio_rl32(pb);
- ret = mov_read_infe(c, pb, infe);
+ ret = mov_read_infe(c, pb, infe, i);
if (ret < 0)
return ret;
}