From 11d364ec365c46c21271012b566966d342a90a8b Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 18 Apr 2010 17:27:47 -0400 Subject: Fix segfault on parse error within macro. The macro token buffer was being freed by both yylex_cleanup() and dmnsn_delete_patricia_trie(). --- dimension/tokenize.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'dimension') diff --git a/dimension/tokenize.c b/dimension/tokenize.c index b5a72f1..1fddea3 100644 --- a/dimension/tokenize.c +++ b/dimension/tokenize.c @@ -1045,7 +1045,8 @@ dmnsn_yylex_cleanup(void *yyscanner) } dmnsn_token_buffer *prev = tbuffer->prev; - dmnsn_delete_token_buffer(tbuffer); + if (tbuffer->type != DMNSN_T_MACRO) + dmnsn_delete_token_buffer(tbuffer); tbuffer = prev; } dmnsn_yyset_extra(NULL, yyscanner); -- cgit v1.2.3