From 8c430d0509a2f1f5dc64de308d1c1d2668d2031b Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Wed, 4 Jun 2014 15:45:53 +0800 Subject: grub2: fix empty file handling Currently, we have a bug when parsing zero-length files: we subtract one from the length to exclude the trailing NUL (added by read_file), but a zero-length file will result in a length of -1. This change adds an explicit exit if we're attempting to parse an empty file. Signed-off-by: Jeremy Kerr --- discover/grub2/parser.y | 3 +++ 1 file changed, 3 insertions(+) (limited to 'discover/grub2') diff --git a/discover/grub2/parser.y b/discover/grub2/parser.y index 23bf427..9d79d9b 100644 --- a/discover/grub2/parser.y +++ b/discover/grub2/parser.y @@ -329,6 +329,9 @@ void grub2_parser_parse(struct grub2_parser *parser, const char *filename, YY_BUFFER_STATE bufstate; int rc; + if (!len) + return; + parser->script->filename = filename; bufstate = yy_scan_bytes(buf, len - 1, parser->scanner); -- cgit v1.2.1