Subject: Re: CVS commit: src/sbin/ifconfig
To: Chapman Flack <nblists@anastigmatix.net>
From: Elad Efrat <elad@NetBSD.org>
List: source-changes
Date: 06/19/2006 21:37:02
Please express your concerns on the relevant thread on tech-userlevel@
and not retroactively on source-changes@.

-e.

Chapman Flack wrote:
>> fix incorrect usage of strncpy() to (an internal implementation of)
>> estrlcpy().
> 
> 
>>     void
>>      estrlcpy(char *dst, char *src, size_t len)
>>      {
>>              if (strlcpy(dst, src, len) >= len) {
>>                      errno = ENAMETOOLONG;
>>                      err(1, "Cannot copy `%s'", src);
>>              }
>>      }
> 
> 
> This seems to be a bit of a pun on ENAMETOOLONG, which is defined
> (by SUS and us) to be filename-specific, and to mean precisely that
> a component of a pathname exceeded NAME_MAX(resp. MAXNAMELEN) or that
> the entire path exceeded PATH_MAX(resp. MAXPATHLEN-1).
> 
> Obviously the function doesn't return, so it isn't a matter of
> misleading the caller, but it will still print the message "File name
> too long" which is a little odd and could send a user down the wrong
> track trying to figure out why the utility might have failed. Would it
> be bad to use errx and a specific message?
> 
> -Chap


-- 
Elad Efrat