diff options
author | Pierre-Anthony Lemieux <pal@palemieux.com> | 2022-08-25 20:21:53 -0700 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-09-07 17:16:02 +0200 |
commit | 6e91d405be3c8a1ded025498085e0e606e337030 (patch) | |
tree | eb0ceb7f42a7899e5d0c1e64994da0f5e24868b1 | |
parent | db85e01fd7976150a522a1881f3479661d8c1a79 (diff) | |
download | ffmpeg-6e91d405be3c8a1ded025498085e0e606e337030.tar.gz |
avformat/imfdec: check if Asset/Id exists before trying to read it
Fixes Coverity issue #1512406
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | libavformat/imfdec.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavformat/imfdec.c b/libavformat/imfdec.c index 5bbe7a53f8..fde91a6419 100644 --- a/libavformat/imfdec.c +++ b/libavformat/imfdec.c @@ -233,7 +233,12 @@ static int parse_imf_asset_map_from_xml_dom(AVFormatContext *s, asset = &(asset_map->assets[asset_map->asset_count]); - if (ff_imf_xml_read_uuid(ff_imf_xml_get_child_element_by_name(asset_element, "Id"), asset->uuid)) { + if (!(node = ff_imf_xml_get_child_element_by_name(asset_element, "Id"))) { + av_log(s, AV_LOG_ERROR, "Unable to parse asset map XML - missing Id node\n"); + return AVERROR_INVALIDDATA; + } + + if (ff_imf_xml_read_uuid(node, asset->uuid)) { av_log(s, AV_LOG_ERROR, "Could not parse UUID from asset in asset map.\n"); return AVERROR_INVALIDDATA; } |