From 49cd6fbccf0414950b03555bb2efbb0c4dc163c0 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Mon, 6 Sep 2010 23:49:52 +0400 Subject: Fix NULL dereferences on %substr missing operands %substr with dangling id issues SIGSEV. Fix it. Signed-off-by: Cyrill Gorcunov --- preproc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/preproc.c b/preproc.c index e3b0c640..22d30ca9 100644 --- a/preproc.c +++ b/preproc.c @@ -3395,12 +3395,13 @@ issue_error: tline = expand_smacro(tline->next); last->next = NULL; - t = tline->next; + if (tline) /* skip expanded id */ + t = tline->next; while (tok_type_(t, TOK_WHITESPACE)) t = t->next; /* t should now point to the string */ - if (t->type != TOK_STRING) { + if (!tok_type_(t, TOK_STRING)) { error(ERR_NONFATAL, "`%%substr` requires string as second parameter"); free_tlist(tline); -- cgit v1.2.1