svn commit: r299770 - head/usr.sbin/bsnmpd/tools/libbsnmptools

Ngie Cooper (yaneurabeya) yaneurabeya at gmail.com
Sun May 15 00:07:15 UTC 2016


> On May 14, 2016, at 16:42, Bruce Evans <brde at optusnet.com.au> wrote:
> 
> On Sat, 14 May 2016, Garrett Cooper wrote:

…

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

You’re 100% correct. I forgot that it isn’t a magic silver bullet that works with scalar pointers :(…

>> 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.

The old and new code was implementing strdup in a longhand way. I just converted everything to strdup.


More information about the svn-src-all mailing list