On Sat, Aug 19, 2017 at 04:20:31PM -0500, Kris Katterjohn wrote: > On Fri, Aug 18, 2017 at 09:24:33AM -0700, Chris Cappuccio wrote: > > This looks correct. Also, there's more: > > Thanks for looking and catching what I missed. It hit me a while after > I sent my original email that relayd likely has the same bug. D'oh. > > Here is an updated patch for httpd, ldapd, relayd, smtpd, switchd and > ypldap, which all seem to have the off-by-one bug for port number > checking (where 65535 is unusable and called invalid, at least when > specifying it as a number). Again, I cannot build and actually test > this right now. > > Cheers, > Kris Katterjohn >
ok gilles@ chris, are you taking care of committing this ? > Index: usr.sbin/httpd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/httpd/parse.y,v > retrieving revision 1.91 > diff -u -p -r1.91 parse.y > --- usr.sbin/httpd/parse.y 11 Aug 2017 18:48:56 -0000 1.91 > +++ usr.sbin/httpd/parse.y 19 Aug 2017 20:15:31 -0000 > @@ -1118,7 +1118,7 @@ medianamesl : numberstring > { > ; > > port : PORT NUMBER { > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %lld", $2); > YYERROR; > } > Index: usr.sbin/ldapd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/ldapd/parse.y,v > retrieving revision 1.24 > diff -u -p -r1.24 parse.y > --- usr.sbin/ldapd/parse.y 6 Apr 2017 12:22:32 -0000 1.24 > +++ usr.sbin/ldapd/parse.y 19 Aug 2017 20:15:31 -0000 > @@ -161,7 +161,7 @@ port : PORT STRING { > free($2); > } > | PORT NUMBER { > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %lld", $2); > YYERROR; > } > Index: usr.sbin/relayd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/relayd/parse.y,v > retrieving revision 1.215 > diff -u -p -r1.215 parse.y > --- usr.sbin/relayd/parse.y 27 May 2017 08:33:25 -0000 1.215 > +++ usr.sbin/relayd/parse.y 19 Aug 2017 20:15:32 -0000 > @@ -338,7 +338,7 @@ port : PORT STRING { > free($2); > } > | PORT NUMBER { > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %d", $2); > YYERROR; > } > Index: usr.sbin/smtpd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/smtpd/parse.y,v > retrieving revision 1.197 > diff -u -p -r1.197 parse.y > --- usr.sbin/smtpd/parse.y 11 Jul 2017 06:08:40 -0000 1.197 > +++ usr.sbin/smtpd/parse.y 19 Aug 2017 20:15:33 -0000 > @@ -480,7 +480,7 @@ opt_if_listen : INET4 { > } > listen_opts.options |= LO_PORT; > > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %" PRId64, $2); > YYERROR; > } > Index: usr.sbin/switchd/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/switchd/parse.y,v > retrieving revision 1.5 > diff -u -p -r1.5 parse.y > --- usr.sbin/switchd/parse.y 6 Aug 2017 17:31:19 -0000 1.5 > +++ usr.sbin/switchd/parse.y 19 Aug 2017 20:15:33 -0000 > @@ -144,7 +144,7 @@ listen : LISTEN ON STRING opttls port { > ; > > port : PORT NUMBER { > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %lld", $2); > YYERROR; > } > Index: usr.sbin/ypldap/parse.y > =================================================================== > RCS file: /cvs/src/usr.sbin/ypldap/parse.y,v > retrieving revision 1.22 > diff -u -p -r1.22 parse.y > --- usr.sbin/ypldap/parse.y 30 May 2017 09:33:31 -0000 1.22 > +++ usr.sbin/ypldap/parse.y 19 Aug 2017 20:15:33 -0000 > @@ -171,7 +171,7 @@ port : PORT STRING > { > free($2); > } > | PORT NUMBER { > - if ($2 <= 0 || $2 >= (int)USHRT_MAX) { > + if ($2 <= 0 || $2 > (int)USHRT_MAX) { > yyerror("invalid port: %lld", $2); > YYERROR; > } > -- Gilles Chehade https://www.poolp.org @poolpOrg