diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-08-25 22:55:05 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2022-08-27 02:16:36 +0200 |
commit | d27c5bce333d6c9c74b855b1f2e747fd541cf37f (patch) | |
tree | 9a29110c3226818a3ee54f0f863775d96351754f /libavformat/tests/imf.c | |
parent | caf26a8a126d7b9853568ce0db2f6e04029fd1a2 (diff) | |
download | ffmpeg-d27c5bce333d6c9c74b855b1f2e747fd541cf37f.tar.gz |
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/tests/imf.c')
-rw-r--r-- | libavformat/tests/imf.c | 12 |
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; |