On Wed, Jan 30, 2019 at 10:39:11PM +0100, Klemens Nanni wrote:
> OK?

OK bluhm@

> Index: parse.y
> ===================================================================
> RCS file: /cvs/src/sbin/pfctl/parse.y,v
> retrieving revision 1.689
> diff -u -p -r1.689 parse.y
> --- parse.y   11 Jan 2019 01:56:54 -0000      1.689
> +++ parse.y   30 Jan 2019 21:20:32 -0000
> @@ -1990,7 +1990,7 @@ filter_opt      : USER uids {
>                       }
>                       filter_opts.divert.type = PF_DIVERT_REPLY;
>               }
> -             | DIVERTPACKET PORT number {
> +             | DIVERTPACKET PORT portplain {
>                       if (filter_opts.divert.type != PF_DIVERT_NONE) {
>                               yyerror("more than one divert option");
>                               YYERROR;
> @@ -2003,11 +2003,11 @@ filter_opt    : USER uids {
>                       if (pf->reassemble & PF_REASS_ENABLED)
>                               filter_opts.marker |= FOM_SCRUB_TCP;
>  
> -                     if ($3 < 1 || $3 > 65535) {
> -                             yyerror("invalid divert port");
> +                     filter_opts.divert.port = $3.a;
> +                     if (!filter_opts.divert.port) {
> +                             yyerror("invalid divert port: %u", ntohs($3.a));
>                               YYERROR;
>                       }
> -                     filter_opts.divert.port = htons($3);
>               }
>               | SCRUB '(' scrub_opts ')' {
>                       filter_opts.nodf = $3.nodf;
> @@ -5755,6 +5755,7 @@ parseport(char *port, struct range *r, i
>                       r->t = PF_OP_RRG;
>               return (0);
>       }
> +     yyerror("port is invalid: %s", port);
>       return (-1);
>  }
>  

Reply via email to