diff --git a/ChangeLog b/ChangeLog index ee91c922eca799516ab44a473347b8418d483b37..3fc886dd31d15ca1ded660741a35d2ed07cdc3c6 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 ad4723daeced2732c9abc7c47328b4d3bc99d4ad..2dee6cfcac36a8b2bff5cdb9df35628ffbe4916a 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,