[FFmpeg-cvslog] avformat/tests/imf: Test ff_imf_parse_cpl_from_xml_dom cleanup on error

Andreas Rheinhardt git at videolan.org
Sat Aug 27 03:20:32 EEST 2022


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Thu Aug 25 22:55:05 2022 +0200| [d27c5bce333d6c9c74b855b1f2e747fd541cf37f] | committer: Andreas Rheinhardt

avformat/tests/imf: Test ff_imf_parse_cpl_from_xml_dom cleanup on error

Improves the test; also should fix Coverity issue #1512408.

Reviewed-by: Pierre-Anthony Lemieux <pal at sandflow.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

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

 libavformat/tests/imf.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/libavformat/tests/imf.c b/libavformat/tests/imf.c
index e65629ccbc..a71de692f9 100644
--- a/libavformat/tests/imf.c
+++ b/libavformat/tests/imf.c
@@ -338,10 +338,9 @@ static int test_cpl_parsing(void)
     return 0;
 }
 
-static int test_bad_cpl_parsing(void)
+static int test_bad_cpl_parsing(FFIMFCPL **cpl)
 {
     xmlDocPtr doc;
-    FFIMFCPL *cpl;
     int ret;
 
     doc = xmlReadMemory(cpl_bad_doc, strlen(cpl_bad_doc), NULL, NULL, 0);
@@ -350,7 +349,7 @@ static int test_bad_cpl_parsing(void)
         return 1;
     }
 
-    ret = ff_imf_parse_cpl_from_xml_dom(doc, &cpl);
+    ret = ff_imf_parse_cpl_from_xml_dom(doc, cpl);
     xmlFreeDoc(doc);
     if (ret) {
         printf("CPL parsing failed.\n");
@@ -506,6 +505,7 @@ fail:
 
 int main(int argc, char *argv[])
 {
+    FFIMFCPL *cpl;
     int ret = 0;
 
     if (test_cpl_parsing() != 0)
@@ -518,8 +518,12 @@ int main(int argc, char *argv[])
         ret = 1;
 
     printf("#### The following should fail ####\n");
-    if (test_bad_cpl_parsing() == 0)
+    if (test_bad_cpl_parsing(&cpl) == 0) {
         ret = 1;
+    } else if (cpl) {
+        printf("Improper cleanup after failed CPL parsing\n");
+        ret = 1;
+    }
     printf("#### End failing test ####\n");
 
     return ret;



More information about the ffmpeg-cvslog mailing list