Currently, we re-use a grub2 parser for different filenames, and will
create one even if we find no matching files.
This change only creates a parser if parser_request_file succeeds, and
free() (and exits the parse) immediately after.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
if (dc->event)
return -1;
if (dc->event)
return -1;
- parser = grub2_parser_create(dc);
-
for (filename = grub2_conf_files; *filename; filename++) {
rc = parser_request_file(dc, dc->device, *filename, &buf, &len);
if (rc)
continue;
for (filename = grub2_conf_files; *filename; filename++) {
rc = parser_request_file(dc, dc->device, *filename, &buf, &len);
if (rc)
continue;
+ parser = grub2_parser_create(dc);
grub2_parser_parse(parser, buf, len);
talloc_free(buf);
grub2_parser_parse(parser, buf, len);
talloc_free(buf);
+ talloc_free(parser);
+ break;