[FFmpeg-cvslog] avformat/imfdec: check if Asset/Id exists before trying to read it

Pierre-Anthony Lemieux git at videolan.org
Wed Sep 7 21:26:03 EEST 2022


ffmpeg | branch: master | Pierre-Anthony Lemieux <pal at palemieux.com> | Thu Aug 25 20:21:53 2022 -0700| [6e91d405be3c8a1ded025498085e0e606e337030] | committer: Andreas Rheinhardt

avformat/imfdec: check if Asset/Id exists before trying to read it

Fixes Coverity issue #1512406

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

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

 libavformat/imfdec.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

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;
         }



More information about the ffmpeg-cvslog mailing list