diff options
-rw-r--r-- | discover/yaboot-parser.c | 3 | ||||
-rw-r--r-- | test/parser/Makefile.am | 1 | ||||
-rw-r--r-- | test/parser/test-yaboot-empty.c | 12 |
3 files changed, 15 insertions, 1 deletions
diff --git a/discover/yaboot-parser.c b/discover/yaboot-parser.c index e52187f..f16ac72 100644 --- a/discover/yaboot-parser.c +++ b/discover/yaboot-parser.c @@ -102,7 +102,8 @@ static void yaboot_finish(struct conf_context *conf) const char *default_label; struct boot_option *opt; - assert(state->opt); + if (!state->opt) + return; opt = state->opt->option; assert(opt); diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am index 46f87ce..abc95bb 100644 --- a/test/parser/Makefile.am +++ b/test/parser/Makefile.am @@ -42,6 +42,7 @@ TESTS = \ test-grub2-lexer-error \ test-grub2-parser-error \ test-kboot-single \ + test-yaboot-empty \ test-yaboot-single \ test-yaboot-partition \ test-yaboot-partition-override \ diff --git a/test/parser/test-yaboot-empty.c b/test/parser/test-yaboot-empty.c new file mode 100644 index 0000000..00d08ad --- /dev/null +++ b/test/parser/test-yaboot-empty.c @@ -0,0 +1,12 @@ +#include "parser-test.h" + +static const char empty[] = ""; + +void run_test(struct parser_test *test) +{ + test_read_conf_data(test, "/etc/yaboot.conf", empty); + + test_run_parser(test, "yaboot"); + + check_boot_option_count(test->ctx, 0); +} |