[FFmpeg-cvslog] avcodec/exif: Avoid allocation for small buffer

Andreas Rheinhardt git at videolan.org
Tue Jan 26 15:16:13 EET 2021


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at gmail.com> | Sat Jan 23 15:44:50 2021 +0100| [f15477169ea9947336448af2772087c8fa1c6cdf] | committer: Andreas Rheinhardt

avcodec/exif: Avoid allocation for small buffer

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f15477169ea9947336448af2772087c8fa1c6cdf
---

 libavcodec/exif.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/libavcodec/exif.c b/libavcodec/exif.c
index 2874772db4..0b656fd09b 100644
--- a/libavcodec/exif.c
+++ b/libavcodec/exif.c
@@ -95,22 +95,15 @@ static int exif_decode_tag(void *logctx, GetByteContext *gbytes, int le,
         ret = ff_exif_decode_ifd(logctx, gbytes, le, depth + 1, metadata);
     } else {
         const char *name = exif_get_tag_name(id);
-        char *use_name   = (char*) name;
-
-        if (!use_name) {
-            use_name = av_malloc(7);
-            if (!use_name) {
-                return AVERROR(ENOMEM);
-            }
-            snprintf(use_name, 7, "0x%04X", id);
-        }
-
-        ret = exif_add_metadata(logctx, count, type, use_name, NULL,
-                                gbytes, le, metadata);
+        char buf[7];
 
         if (!name) {
-            av_freep(&use_name);
+            name = buf;
+            snprintf(buf, sizeof(buf), "0x%04X", id);
         }
+
+        ret = exif_add_metadata(logctx, count, type, name, NULL,
+                                gbytes, le, metadata);
     }
 
     bytestream2_seek(gbytes, cur_pos, SEEK_SET);



More information about the ffmpeg-cvslog mailing list