mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/exif: Avoid allocation for small buffer
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
458acb61fa
commit
f15477169e
|
@ -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);
|
ret = ff_exif_decode_ifd(logctx, gbytes, le, depth + 1, metadata);
|
||||||
} else {
|
} else {
|
||||||
const char *name = exif_get_tag_name(id);
|
const char *name = exif_get_tag_name(id);
|
||||||
char *use_name = (char*) name;
|
char buf[7];
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (!name) {
|
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);
|
bytestream2_seek(gbytes, cur_pos, SEEK_SET);
|
||||||
|
|
Loading…
Reference in New Issue