diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-05-02 11:40:46 +0200 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2010-05-02 11:40:46 +0200 |
commit | 34f92dcfba414327180e21932761d38c5e69d0c8 (patch) | |
tree | 0b42064e11d7b37d050aefa3bad6d36ab79c11b6 /src/starter/parser.y | |
parent | 2724ae521e50c34755dac2abc190785b5c4edaa6 (diff) | |
download | strongswan-34f92dcfba414327180e21932761d38c5e69d0c8.tar.bz2 strongswan-34f92dcfba414327180e21932761d38c5e69d0c8.tar.xz |
fixed flex parser memory leaks in ipsec starter
Diffstat (limited to 'src/starter/parser.y')
-rw-r--r-- | src/starter/parser.y | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/starter/parser.y b/src/starter/parser.y index 4533228c2..b0b1f6f21 100644 --- a/src/starter/parser.y +++ b/src/starter/parser.y @@ -156,21 +156,20 @@ statement_kw: %% -void -yyerror(const char *s) +void yyerror(const char *s) { if (_save_errors_) _parser_y_error(parser_errstring, ERRSTRING_LEN, s); } -config_parsed_t * -parser_load_conf(const char *file) +config_parsed_t *parser_load_conf(const char *file) { config_parsed_t *cfg = NULL; int err = 0; FILE *f; - extern void _parser_y_init (const char *f); + extern void _parser_y_init(const char *f); + extern void _parser_y_fini(void); extern FILE *yyin; memset(parser_errstring, 0, ERRSTRING_LEN+1); @@ -231,11 +230,11 @@ parser_load_conf(const char *file) cfg = NULL; } + _parser_y_fini(); return cfg; } -static void -parser_free_kwlist(kw_list_t *list) +static void parser_free_kwlist(kw_list_t *list) { kw_list_t *elt; @@ -248,8 +247,7 @@ parser_free_kwlist(kw_list_t *list) } } -void -parser_free_conf(config_parsed_t *cfg) +void parser_free_conf(config_parsed_t *cfg) { section_list_t *sec; if (cfg) |