diff mbox series

[FFmpeg-devel,libavformat/moc.c] Read the QT Metadata Keys only once

Message ID 20200507190823.18524-1-tfoucu@gmail.com
State Superseded
Headers show
Series [FFmpeg-devel,libavformat/moc.c] Read the QT Metadata Keys only once
Related show

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Thierry Foucu May 7, 2020, 7:08 p.m. UTC
If you have a file with multiple Metadata Keys, the second time you parse
the keys, you will re-alloc c->meta_keys without freeing the old one.
This change will avoid parsing all the consecutive Metadata keys.
---
 libavformat/mov.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/libavformat/mov.c b/libavformat/mov.c
index ad718cdaa2..062a62d93b 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -7022,7 +7022,8 @@  static int mov_read_default(MOVContext *c, AVIOContext *pb, MOVAtom atom)
         // https://developer.apple.com/library/mac/documentation/QuickTime/QTFF/Metadata/Metadata.html
         if (!parse && c->found_hdlr_mdta &&
             atom.type == MKTAG('m','e','t','a') &&
-            a.type == MKTAG('k','e','y','s')) {
+            a.type == MKTAG('k','e','y','s') &&
+            c->meta_keys_count == 0) {
             parse = mov_read_keys;
         }