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

Pierre-Anthony Lemieux pal at sandflow.com
Fri Aug 26 18:45:51 EEST 2022


On Fri, Aug 26, 2022 at 1:22 AM Andreas Rheinhardt
<andreas.rheinhardt at outlook.com> wrote:
>
> Pierre-Anthony Lemieux:
> > On Thu, Aug 25, 2022 at 1:58 PM Andreas Rheinhardt
> > <andreas.rheinhardt at outlook.com> wrote:
> >>
> >> Improves the test; also should fix Coverity issue #1512408.
> >>
> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> >> ---
> >>  libavformat/tests/imf.c | 10 ++++++----
> >>  1 file changed, 6 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/libavformat/tests/imf.c b/libavformat/tests/imf.c
> >> index e65629ccbc..a7b2ed3b4d 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,10 @@ 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");
> >
> > Shouldn't `ret` be set to 1 here as well?
> >
>
> Will do. (When run as part of FATE, the test would nevertheless fail,
> because the ref file does not contain the "Improper cleanup" line.)

Thanks, and yes.

>
> >>      printf("#### End failing test ####\n");
> >>
> >>      return ret;
> >> --
> >> 2.34.1


More information about the ffmpeg-devel mailing list