This is the mail archive of the cygwin@sources.redhat.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Two snapshot bugs


--- Chris Faylor <cgf@cygnus.com> wrote:
> On Tue, Oct 10, 2000 at 06:08:53PM +0100, Fifer, Eric wrote:
> >+ getcwd() seems to be busted:
> >
> >	#include <stdio.h>
> >	main() { printf("getcwd=%s\n", getcwd(NULL, 0)); }
> >
> >  produces:
> >
> >	getcwd=(null)
> 
> In any description of getcwd that I"ve found, specifying '0' as the size
> means that you allocate a zero length buffer.
> 
> The linux man page says this:
> 
>        As  an  extension  to the POSIX.1 standard, getcwd() allo-
>        cates the buffer dynamically using malloc() if buf is NULL
>        on  call.   In  this  case,  the  allocated buffer has the
>        length size unless size is less than  zero,  when  buf  is
>        allocated  as  big  as  necessary.   It  is possible (and,
>        indeed, advisable) to free() the buffers if they have been
>        obtained this way.
> 
> So 'getcwd (NULL, -1)' should return something but 'getcwd (NULL, 0)', IMO,
> should not.
> 

And the "Single UNIX Specification" as copyrighted by the Open Group doesn't
even give it that much freedom.  Gives an EINVAL error for size 0 and says that
if buf is a NULL pointer then the result is undefined.  Reference:
http://www.opennc.org/onlinepubs/7908799/xsh/getcwd.html

Cheers,

=====
Earnie Boyd
mailto:earnie_boyd@yahoo.com

---         <http://earniesystems.safeshopper.com>         ---
--- Cygwin: POSIX on Windows <http://gw32.freeyellow.com/> ---
---   Minimalist GNU for Windows <http://www.mingw.org/>   ---

__________________________________________________
Do You Yahoo!?
Get Yahoo! Mail - Free email you can access from anywhere!
http://mail.yahoo.com/

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]