From 71af0741dbad1e84a2a52282597e68c778229061 Mon Sep 17 00:00:00 2001 From: Sean Usher Date: Mon, 7 Nov 2016 19:28:52 -0800 Subject: [PATCH] Handle the case where the language definition references a non-existant rule, and ensure it fails with 'Unknown Parser' --- mpc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mpc.c b/mpc.c index be2e0cf..23d3e74 100644 --- a/mpc.c +++ b/mpc.c @@ -3264,7 +3264,7 @@ static mpc_parser_t *mpca_grammar_find_parser(char *x, mpca_grammar_st_t *st) { st->parsers = realloc(st->parsers, sizeof(mpc_parser_t*) * st->parsers_num); st->parsers[st->parsers_num-1] = p; - if (p == NULL) { return mpc_failf("Unknown Parser '%s'!", x); } + if (p == NULL || p->name == NULL) { return mpc_failf("Unknown Parser '%s'!", x); } if (p->name && strcmp(p->name, x) == 0) { return p; } }