From 225b29e4356a766ebba8ebc2b90c4b8fc7981094 Mon Sep 17 00:00:00 2001 From: Per Cederqvist Date: Tue, 3 Jan 2006 13:18:42 +0000 Subject: [PATCH] Fixed a use-after-free error found by valgrind. This could only be triggered by a broken aux-item definition file, so it was mostly harmless. * src/server/aux-item-def-parse.y (aux_item_def_check_trigger): Don't free a string before using it. --- ChangeLog | 6 ++++++ src/server/aux-item-def-parse.y | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index ee91c922..3fc886dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2006-01-03 Per Cederqvist + Fixed a use-after-free error found by valgrind. This could only + be triggered by a broken aux-item definition file, so it was + mostly harmless. + * src/server/aux-item-def-parse.y (aux_item_def_check_trigger): + Don't free a string before using it. + Fixed various harmless memory and file descriptor leaks found by valgrind. * src/server/testsuite/lyskomd.supp: Added aid_lexer_2. diff --git a/src/server/aux-item-def-parse.y b/src/server/aux-item-def-parse.y index ad4723da..2dee6cfc 100644 --- a/src/server/aux-item-def-parse.y +++ b/src/server/aux-item-def-parse.y @@ -516,15 +516,16 @@ aux_item_def_check_trigger(int *found, tmp_string = s_crea_c_str(function_name); trigger = aux_item_find_trigger(tmp_string); - string_free(tmp_string); if (trigger == NULL) { yyerror("undefined function: %s", tmp_string); + string_free(tmp_string); return; } + string_free(tmp_string); *counter += 1; *triggers = srealloc(*triggers, -- GitLab