From cfcffbc8ff1a9e699ca1e8073b7bc3d10c399563 Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 27 Nov 2013 19:47:37 +0800 Subject: discover/grub2: Use parser for a single parse 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 --- discover/grub2/grub2.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'discover/grub2/grub2.c') diff --git a/discover/grub2/grub2.c b/discover/grub2/grub2.c index e942f68..ffb6ece 100644 --- a/discover/grub2/grub2.c +++ b/discover/grub2/grub2.c @@ -97,18 +97,18 @@ static int grub2_parse(struct discover_context *dc) 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; + parser = grub2_parser_create(dc); grub2_parser_parse(parser, buf, len); talloc_free(buf); + talloc_free(parser); + break; } - talloc_free(parser); return 0; } -- cgit v1.2.1