Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 May 2016 09:42:24 +1000 (EST)
From:      Bruce Evans <brde@optusnet.com.au>
To:        Garrett Cooper <ngie@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org,  svn-src-head@freebsd.org
Subject:   Re: svn commit: r299770 - head/usr.sbin/bsnmpd/tools/libbsnmptools
Message-ID:  <20160515093254.R2601@besplex.bde.org>
In-Reply-To: <201605142243.u4EMh75e071378@repo.freebsd.org>
References:  <201605142243.u4EMh75e071378@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 14 May 2016, Garrett Cooper wrote:

> Log:
>  Fix up r299764
>
>  I meant to use nitems, not sizeof(..) with the destination buffer. Using sizeof(..)
>  on a pointer will always truncate the output in the destination buffer incorrectly
>
>  Pointyhat to: ngie

Er, this is pointier than before.  nitems() is only valid on arrays.

> Modified: head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
> ==============================================================================
> --- head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c	Sat May 14 22:40:35 2016	(r299769)
> +++ head/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c	Sat May 14 22:43:07 2016	(r299770)
> @@ -264,7 +264,7 @@ add_filename(struct snmp_toolinfo *snmpt
>
> 	if (cut != NULL)
> 		asn_append_oid(&(entry->cut), cut);
> -	strlcpy(fstring, filename, sizeof(fstring));
> +	strlcpy(fstring, filename, nitems(fstring));

fstring is pointer to char, so nitems(fstring) = sizeof(char *) / 1
sizeof(char *) = accidentally the same wrong value as before.

The old code using strlen() had a chance of being correct.

Bruce



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20160515093254.R2601>