fixed flex parser memory leaks in ipsec starter

This commit is contained in:
Andreas Steffen
2010-05-02 11:40:46 +02:00
parent 2724ae521e
commit 34f92dcfba
2 changed files with 10 additions and 10 deletions
+3 -1
View File
@@ -24,7 +24,8 @@
#define MAX_INCLUDE_DEPTH 20
extern void yyerror(const char *);
extern int yylex (void);
extern int yylex(void);
extern int yylex_destroy(void);
static struct {
int stack_ptr;
@@ -68,6 +69,7 @@ void _parser_y_fini (void)
fclose(__parser_y_private.file[i]);
}
memset(&__parser_y_private, 0, sizeof(__parser_y_private));
yylex_destroy();
}
int _parser_y_include (const char *filename)
+7 -9
View File
@@ -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)