if (symbol_lookup(scope, $2) != NULL) {
erec_queue(error(&@2, "redefinition of symbol '%s'", $2),
state->msgs);
+ xfree($2);
YYERROR;
}
int type;
erec = ct_objtype_parse(&@$, $2, &type);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
int type;
erec = ct_objtype_parse(&@$, $2, &type);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
int type;
erec = ct_objtype_parse(&@$, $2, &type);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
int type;
erec = ct_objtype_parse(&@$, $2, &type);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
if (strcmp($2, "helpers") == 0) {
cmd = CMD_OBJ_CT_HELPERS;
} else {
- struct error_record *erec;
-
- erec = error(&@$, "unknown ct class '%s', want 'helpers'", $2);
-
- if (erec != NULL) {
- erec_queue(erec, state->msgs);
- YYERROR;
- } else
- YYERROR;
+ erec_queue(error(&@$, "unknown ct class '%s', want 'helpers'", $2),
+ state->msgs);
+ xfree($2);
+ YYERROR;
}
+ xfree($2);
$$ = cmd_alloc(CMD_LIST, cmd, &$4, &@$, NULL);
}
{
if (strcmp($2, "dormant") == 0) {
$<table>0->flags = TABLE_F_DORMANT;
+ xfree($2);
} else {
erec_queue(error(&@2, "unknown table option %s", $2),
state->msgs);
+ xfree($2);
YYERROR;
}
}
int type;
erec = ct_objtype_parse(&@$, $3, &type);
+ xfree($3);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
if (dtype == NULL) {
erec_queue(error(&@3, "unknown datatype %s", $3),
state->msgs);
+ xfree($3);
YYERROR;
}
+ xfree($3);
$$ = concat_subtype_add($$, dtype->type);
}
;
if (chain_type == NULL) {
erec_queue(error(&@2, "unknown chain type %s", $2),
state->msgs);
+ xfree($2);
YYERROR;
}
$<chain>0->type = xstrdup(chain_type);
if ($<chain>0->hookstr == NULL) {
erec_queue(error(&@4, "unknown chain hook %s", $4),
state->msgs);
+ xfree($4);
YYERROR;
}
xfree($4);
uint64_t res;
erec = time_parse(&@1, $1, &res);
+ xfree($1);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
else if (!strcmp("debug", $1))
$$ = LOG_DEBUG;
else {
- erec_queue(error(&@1, "invalid log level", $1),
+ erec_queue(error(&@1, "invalid log level"),
state->msgs);
+ xfree($1);
YYERROR;
}
+ xfree($1);
}
;
uint64_t rate, unit;
erec = rate_parse(&@$, $5, &rate, &unit);
+ xfree($5);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
uint64_t rate;
erec = data_unit_parse(&@$, $3, &rate);
+ xfree($3);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
uint64_t rate;
erec = data_unit_parse(&@$, $4, &rate);
+ xfree($4);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
uint64_t rate;
erec = data_unit_parse(&@$, $3, &rate);
+ xfree($3);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
current_scope(state),
$4);
$<stmt>0->reject.expr->dtype = &icmp_code_type;
+ xfree($4);
}
| WITH ICMP6 TYPE STRING
{
current_scope(state),
$4);
$<stmt>0->reject.expr->dtype = &icmpv6_code_type;
+ xfree($4);
}
| WITH ICMPX TYPE STRING
{
current_scope(state),
$4);
$<stmt>0->reject.expr->dtype = &icmpx_code_type;
+ xfree($4);
}
| WITH TCP RESET
{
if (symbol_lookup(scope, $2) == NULL) {
erec_queue(error(&@2, "unknown identifier '%s'", $2),
state->msgs);
+ xfree($2);
YYERROR;
}
uint64_t rate;
erec = data_unit_parse(&@$, $3, &rate);
+ xfree($3);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
unsigned int key;
erec = meta_key_parse(&@$, $2, &key);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
unsigned int key;
erec = meta_key_parse(&@$, $2, &key);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
unsigned int key;
erec = ct_key_parse(&@$, $2, &key);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
int8_t direction;
erec = ct_dir_parse(&@$, $2, &direction);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
unsigned int key;
erec = ct_key_parse(&@$, $2, &key);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;
int8_t direction;
erec = ct_dir_parse(&@$, $2, &direction);
+ xfree($2);
if (erec != NULL) {
erec_queue(erec, state->msgs);
YYERROR;