From 018eeacaa4059df74e2745fcdadc2ad85afec985 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Fri, 12 Feb 2010 01:20:33 -0500 Subject: Don't leak a file handle on parse failures from within includes. --- dimension/tokenize.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/dimension/tokenize.c b/dimension/tokenize.c index e872e0c..33512ae 100644 --- a/dimension/tokenize.c +++ b/dimension/tokenize.c @@ -866,6 +866,11 @@ dmnsn_yylex_cleanup(void *yyscanner) { dmnsn_token_buffer *tbuffer = dmnsn_yyget_extra(yyscanner); while (tbuffer) { + if (tbuffer->type == DMNSN_T_INCLUDE) { + dmnsn_yy_pop_buffer(yyscanner); + fclose(tbuffer->ptr); + } + dmnsn_token_buffer *prev = tbuffer->prev; dmnsn_delete_token_buffer(tbuffer); tbuffer = prev; -- cgit v1.2.3