pfctl: improve error reporting for routehost

If an invalid (i.e. overly long) interface name is specified error out
immediately, rather than in expand_rule() so we point at the incorrect
line.

PR:		260958
MFC after:	3 weeks
Differential Revision:	https://reviews.freebsd.org/D34008
This commit is contained in:
Kristof Provost 2022-01-05 21:31:02 +01:00
parent 6871de9363
commit e68de66943

View File

@ -4582,6 +4582,10 @@ route_host : STRING {
$$ = calloc(1, sizeof(struct node_host));
if ($$ == NULL)
err(1, "route_host: calloc");
if (strlen($1) >= IFNAMSIZ) {
yyerror("interface name too long");
YYERROR;
}
$$->ifname = strdup($1);
set_ipmask($$, 128);
$$->next = NULL;
@ -4591,8 +4595,13 @@ route_host : STRING {
struct node_host *n;
$$ = $3;
for (n = $3; n != NULL; n = n->next)
for (n = $3; n != NULL; n = n->next) {
if (strlen($2) >= IFNAMSIZ) {
yyerror("interface name too long");
YYERROR;
}
n->ifname = strdup($2);
}
}
;