summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-08-25 22:55:05 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-08-27 02:16:36 +0200
commitd27c5bce333d6c9c74b855b1f2e747fd541cf37f (patch)
tree9a29110c3226818a3ee54f0f863775d96351754f /libavformat
parentcaf26a8a126d7b9853568ce0db2f6e04029fd1a2 (diff)
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@sandflow.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/tests/imf.c12
1 files 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;