svn commit: r318400 - head/sbin/ipfw

Rodney W. Grimes freebsd at pdx.rh.CN85.dnsmgr.net
Thu May 18 00:49:44 UTC 2017


[ Charset UTF-8 unsupported, converting... ]
> Author: ae
> Date: Wed May 17 10:56:22 2017
> New Revision: 318400
> URL: https://svnweb.freebsd.org/changeset/base/318400
> 
> Log:
>   Allow zero port specification in table entries with type flow.
>   
>   PR:		217620
>   MFC after:	1 week
> 
> Modified:
>   head/sbin/ipfw/tables.c
> 
> Modified: head/sbin/ipfw/tables.c
> ==============================================================================
> --- head/sbin/ipfw/tables.c	Wed May 17 09:04:09 2017	(r318399)
> +++ head/sbin/ipfw/tables.c	Wed May 17 10:56:22 2017	(r318400)
> @@ -1260,16 +1260,14 @@ tentry_fill_key_type(char *arg, ipfw_obj
>  			if ((p = strchr(arg, ',')) != NULL)
>  				*p++ = '\0';
>  
> -			if ((port = htons(strtol(arg, NULL, 10))) == 0) {
> +			port = htons(strtol(arg, &pp, 10));
                                                      ^^^
Can this be converted to a sizeof(foo) somehow?
Constants like this are typically bad style and lead to bugs.

> +			if (*pp != '\0') {
>  				if ((sent = getservbyname(arg, NULL)) == NULL)
>  					errx(EX_DATAERR, "Unknown service: %s",
>  					    arg);
> -				else
> -					key = sent->s_port;
> +				port = sent->s_port;
>  			}
> -			
>  			tfe->sport = port;
> -
>  			arg = p;
>  		}
>  
> @@ -1304,16 +1302,14 @@ tentry_fill_key_type(char *arg, ipfw_obj
>  			if ((p = strchr(arg, ',')) != NULL)
>  				*p++ = '\0';
>  
> -			if ((port = htons(strtol(arg, NULL, 10))) == 0) {
> +			port = htons(strtol(arg, &pp, 10));
> +			if (*pp != '\0') {
>  				if ((sent = getservbyname(arg, NULL)) == NULL)
>  					errx(EX_DATAERR, "Unknown service: %s",
>  					    arg);
> -				else
> -					key = sent->s_port;
> +				port = sent->s_port;
>  			}
> -			
>  			tfe->dport = port;
> -
>  			arg = p;
>  		}
>  
> 
> 

-- 
Rod Grimes                                                 rgrimes at freebsd.org


More information about the svn-src-all mailing list