summaryrefslogtreecommitdiffstats
path: root/test/parser
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2014-06-04 15:45:53 +0800
committerJeremy Kerr <jk@ozlabs.org>2014-06-05 15:25:10 +0800
commit8c430d0509a2f1f5dc64de308d1c1d2668d2031b (patch)
tree18cb9a8671f977e49c0aab70e718e9ecd224b8cf /test/parser
parentdcc2bd8913d3741614e971b0be12f490d8334538 (diff)
downloadtalos-petitboot-8c430d0509a2f1f5dc64de308d1c1d2668d2031b.tar.gz
talos-petitboot-8c430d0509a2f1f5dc64de308d1c1d2668d2031b.zip
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 <jk@ozlabs.org>
Diffstat (limited to 'test/parser')
-rw-r--r--test/parser/Makefile.am1
-rw-r--r--test/parser/test-grub2-empty.c10
2 files changed, 11 insertions, 0 deletions
diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index b36889d..283b284 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -29,6 +29,7 @@ TESTS = \
test-null \
test-grub2-single \
test-grub2-default \
+ test-grub2-empty \
test-grub2-default-index \
test-grub2-default-multiword \
test-grub2-multiple-resolve \
diff --git a/test/parser/test-grub2-empty.c b/test/parser/test-grub2-empty.c
new file mode 100644
index 0000000..c7ebbeb
--- /dev/null
+++ b/test/parser/test-grub2-empty.c
@@ -0,0 +1,10 @@
+
+#include "parser-test.h"
+
+void run_test(struct parser_test *test)
+{
+ __test_read_conf_data(test, test->ctx->device,
+ "/grub2/grub.cfg", "", 0);
+ test_run_parser(test, "grub2");
+ check_boot_option_count(test->ctx, 0);
+}
OpenPOWER on IntegriCloud