[FFmpeg-devel] [PATCH v1] avformat/imf: fix CPL parsing error handling
pal at sandflow.com
pal at sandflow.com
Tue Jan 4 08:10:56 EET 2022
From: Pierre-Anthony Lemieux <pal at palemieux.com>
Signed-off-by: Pierre-Anthony Lemieux <pal at palemieux.com>
---
libavformat/imf_cpl.c | 51 +++++++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 24 deletions(-)
diff --git a/libavformat/imf_cpl.c b/libavformat/imf_cpl.c
index 167244a5a2..72fc7ffec8 100644
--- a/libavformat/imf_cpl.c
+++ b/libavformat/imf_cpl.c
@@ -807,34 +807,37 @@ 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 {
- LIBXML_TEST_VERSION
-
- filesize = buf.len;
- doc = xmlReadMemory(buf.str, filesize, NULL, NULL, 0);
- if (!doc) {
- av_log(NULL,
- 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))) {
- av_log(NULL, AV_LOG_ERROR, "Cannot parse IMF CPL\n");
- } else {
- av_log(NULL,
- AV_LOG_INFO,
- "IMF CPL ContentTitle: %s\n",
- (*cpl)->content_title_utf8);
- av_log(NULL,
- AV_LOG_INFO,
- "IMF CPL Id: " FF_IMF_UUID_FORMAT "\n",
- UID_ARG((*cpl)->id_uuid));
- }
+ LIBXML_TEST_VERSION
- xmlFreeDoc(doc);
+ filesize = buf.len;
+ doc = xmlReadMemory(buf.str, filesize, NULL, NULL, 0);
+ if (!doc) {
+ av_log(NULL,
+ 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))) {
+ av_log(NULL, AV_LOG_ERROR, "Cannot parse IMF CPL\n");
+ } else {
+ av_log(NULL,
+ AV_LOG_INFO,
+ "IMF CPL ContentTitle: %s\n",
+ (*cpl)->content_title_utf8);
+ av_log(NULL,
+ AV_LOG_INFO,
+ "IMF CPL Id: " FF_IMF_UUID_FORMAT "\n",
+ UID_ARG((*cpl)->id_uuid));
+ }
+
+ xmlFreeDoc(doc);
+
+clean_up:
av_bprint_finalize(&buf, NULL);
return ret;
--
2.17.1
More information about the ffmpeg-devel
mailing list