svn commit: r299770 - head/usr.sbin/bsnmpd/tools/libbsnmptools
Bruce Evans
brde at optusnet.com.au
Sat May 14 23:42:37 UTC 2016
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
More information about the svn-src-head
mailing list