summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorPierre-Anthony Lemieux <pal@palemieux.com>2022-01-04 18:42:06 -0800
committerZane van Iperen <zane@zanevaniperen.com>2022-01-05 21:19:47 +1000
commit76ffe1c2f1432001f2cdde42d53c839247a43380 (patch)
tree537ec55ecf72edc6c9f98b631a2834a8411c46b0 /libavformat
parent59f1a46048109b8ec9f953d0d9348f9f1ae2a8c2 (diff)
avformat/imf: fix CPL parsing error handling
Signed-off-by: Pierre-Anthony Lemieux <pal@palemieux.com> Signed-off-by: Zane van Iperen <zane@zanevaniperen.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/imf_cpl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libavformat/imf_cpl.c b/libavformat/imf_cpl.c
index 28798d3e36..366a1be9e2 100644
--- a/libavformat/imf_cpl.c
+++ b/libavformat/imf_cpl.c
@@ -807,7 +807,9 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl)
av_log(NULL, AV_LOG_ERROR, "Cannot read IMF CPL\n");
if (ret == 0)
ret = AVERROR_INVALIDDATA;
- } else {
+ goto clean_up;
+ }
+
LIBXML_TEST_VERSION
filesize = buf.len;
@@ -817,6 +819,7 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl)
AV_LOG_ERROR,
"XML parsing failed when reading the IMF CPL\n");
ret = AVERROR_INVALIDDATA;
+ goto clean_up;
}
if ((ret = ff_imf_parse_cpl_from_xml_dom(doc, cpl))) {
@@ -833,8 +836,8 @@ int ff_imf_parse_cpl(AVIOContext *in, FFIMFCPL **cpl)
}
xmlFreeDoc(doc);
- }
+clean_up:
av_bprint_finalize(&buf, NULL);
return ret;