While I agree with your statements, it's strictly not possible in this case - realpath() requires that the second argument be a string buffer of size PATH_MAX (read the manpage).
SYNOPSIS #include <stdlib.h> char *realpath(const char *file_name, char *resolved_name); DESCRIPTION The realpath() function derives, from the pathname pointed to by file_name, an absolute pathname that names the same file, whose resolution does not involve ".", "..", or sym- bolic links. The generated pathname is stored, up to a max- imum of PATH_MAX bytes, in the buffer pointed to by resolved_name. Jeff On Thu, 2002-01-10 at 13:27, Jeroen Dekkers wrote: > On Thu, Jan 10, 2002 at 12:38:30PM -0500, Jeffrey Stedfast wrote: > > Actually the attached patch is the "correct one". There is no need to > > memset and you should use PATH_MAX rather than 4096. > > Both is incorrect. PATH_MAX isn't required by POSIX and some systems > don't have it (the Hurd for example). The Hurd simply doesn't have a > limit (the GNU Coding Standards says arbitrary limits should be > avoided, they are bad (think about the 640k limit, 1024 cylinder > limit, etc)). If we have to define some limit it would be so large > that it is not suitable for static allocation. You should use dynamic > allocation and not limit you in any way. > > Jeroen Dekkers > -- > Jabber supporter - http://www.jabber.org Jabber ID: [EMAIL PROTECTED] > Debian GNU supporter - http://www.debian.org http://www.gnu.org > IRC: [EMAIL PROTECTED] -- Jeffrey Stedfast Evolution Hacker - Ximian, Inc. [EMAIL PROTECTED] - www.ximian.com