svn commit: r243076 - head/usr.sbin/chkgrp

Konstantin Belousov kostikbel at gmail.com
Thu Nov 15 15:30:48 UTC 2012


On Thu, Nov 15, 2012 at 03:06:03PM +0000, Eitan Adler wrote:
> Author: eadler
> Date: Thu Nov 15 15:06:03 2012
> New Revision: 243076
> URL: http://svnweb.freebsd.org/changeset/base/243076
> 
> Log:
>   Check the range of the gid
>   
>   Approved by:	cperciva
>   MFC after:	1 week
> 
> Modified:
>   head/usr.sbin/chkgrp/chkgrp.c
> 
> Modified: head/usr.sbin/chkgrp/chkgrp.c
> ==============================================================================
> --- head/usr.sbin/chkgrp/chkgrp.c	Thu Nov 15 15:06:00 2012	(r243075)
> +++ head/usr.sbin/chkgrp/chkgrp.c	Thu Nov 15 15:06:03 2012	(r243076)
> @@ -30,7 +30,10 @@
>  __FBSDID("$FreeBSD$");
>  
>  #include <err.h>
> +#include <errno.h>
>  #include <ctype.h>
> +#include <limits.h>
> +#include <stdint.h>
>  #include <stdio.h>
>  #include <stdlib.h>
>  #include <string.h>
> @@ -150,6 +153,18 @@ main(int argc, char *argv[])
>  	    warnx("%s: line %d: GID is not numeric", gfn, n);
>  	    e++;
>  	}
> +
> +	/* check the range of the group id */
> +	errno = 0;
> +	unsigned long groupid = strtoul(f[2], NULL, 10);
And this violates style.
The checks for strtoul failure are not exhaustive.

> +	if (errno != 0) {
> +		warnx("%s: line %d: strtoul failed", gfn, n);
> +	}
> +	else if (groupid > GID_MAX) {
> +		warnx("%s: line %d: group id is too large (> %ju)",
> +		  gfn, n, (uintmax_t)GID_MAX);
> +		e++;
> +	}
>  	
>  #if 0
>  	/* entry is correct, so print it */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20121115/fa09e6d5/attachment.sig>


More information about the svn-src-all mailing list