mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
intel: gen-decoder: fix xml parser leak
In the unlikely case the parsing of genxml files fails, we were leaking an xml parser object. Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
This commit is contained in:
parent
1c8f7d3be6
commit
55be6653e0
1 changed files with 7 additions and 6 deletions
|
|
@ -650,9 +650,9 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
|
|||
len = fread(buf, 1, XML_BUFFER_SIZE, input);
|
||||
if (len == 0) {
|
||||
fprintf(stderr, "fread: %m\n");
|
||||
fclose(input);
|
||||
free(filename);
|
||||
return NULL;
|
||||
free(ctx.spec);
|
||||
ctx.spec = NULL;
|
||||
goto end;
|
||||
}
|
||||
if (XML_ParseBuffer(ctx.parser, len, len == 0) == 0) {
|
||||
fprintf(stderr,
|
||||
|
|
@ -660,12 +660,13 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
|
|||
XML_GetCurrentLineNumber(ctx.parser),
|
||||
XML_GetCurrentColumnNumber(ctx.parser),
|
||||
XML_ErrorString(XML_GetErrorCode(ctx.parser)));
|
||||
fclose(input);
|
||||
free(filename);
|
||||
return NULL;
|
||||
free(ctx.spec);
|
||||
ctx.spec = NULL;
|
||||
goto end;
|
||||
}
|
||||
} while (len > 0);
|
||||
|
||||
end:
|
||||
XML_ParserFree(ctx.parser);
|
||||
|
||||
fclose(input);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue