pfctl: Allow TOS bits to be cleared

TOS value 0 is valid, so use 256 as an invalid value rather than zero.
This allows users to enforce TOS == 0 with pf.

Reported by:	Radek Krejča <radek.krejca@starnet.cz>
This commit is contained in:
Kristof Provost 2016-08-02 15:41:42 +00:00
parent 249a8a8003
commit 0cd7a91aa7

View File

@ -3593,8 +3593,8 @@ tos : STRING {
else if ($1[0] == '0' && $1[1] == 'x')
$$ = strtoul($1, NULL, 16);
else
$$ = 0; /* flag bad argument */
if (!$$ || $$ > 255) {
$$ = 256; /* flag bad argument */
if ($$ < 0 || $$ > 255) {
yyerror("illegal tos value %s", $1);
free($1);
YYERROR;
@ -3603,7 +3603,7 @@ tos : STRING {
}
| NUMBER {
$$ = $1;
if (!$$ || $$ > 255) {
if ($$ < 0 || $$ > 255) {
yyerror("illegal tos value %s", $1);
YYERROR;
}