Subject: Re: pkg/20978: mail/deliver is not compatible with recent NetBSD libc
To: None <jbernard@mines.edu>
From: Todd Vierling <tv@pobox.com>
List: current-users
Date: 04/07/2003 10:54:57
[Re-sent with proper Cc:.]

On Tue, 1 Apr 2003 jbernard@mines.edu wrote:

: 	The problem is that it uses the basename function to construct file
: 	names [in lock.c (dotlock_name) and subs.c (unique)], and its usage
: 	of basename assumes that the function returns a pointer that
: 	references a location within the source string (which deliver then
: 	uses to modify the string).  However NetBSD's libc/gen/basename.c
: 	was changed on Oct. 17, 2002 (rev. 1.5 of basename.c) to always
: 	return a pointer to static storage containing the base name, so
: 	deliver fails to construct usable file names.

This is a severe problem.  I've seen other code which depends on basename
returning an in-situ pointer, and the change to libc (without versioning the
call because of the ABI change) is alarming.

NetBSDheads:  Is there really a reason not to return a pointer into the
existing string?

-- 
-- Todd Vierling <tv@pobox.com>