Update.
authorUlrich Drepper <drepper@redhat.com>
Fri, 20 Aug 1999 18:07:28 +0000 (18:07 +0000)
committerUlrich Drepper <drepper@redhat.com>
Fri, 20 Aug 1999 18:07:28 +0000 (18:07 +0000)
* sysdeps/unix/sysv/linux/getcwd.c: Allocate buffer large enough
not only if size == 0, but also for size < 0.
* sysdeps/posix/getcwd.c: Likewise.  [PR libc/1269]

ChangeLog
sysdeps/posix/getcwd.c
sysdeps/unix/sysv/linux/getcwd.c

index 97fdc6e..d036936 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,8 @@
 1999-08-20  Ulrich Drepper  <drepper@cygnus.com>
 
-       * sysdeps/posix/getcwd.c: Allocate buffer large enough not only if
-       size == 0, but also for size < 0 [PR libc/1269].
+       * sysdeps/unix/sysv/linux/getcwd.c: Allocate buffer large enough
+       not only if size == 0, but also for size < 0.
+       * sysdeps/posix/getcwd.c: Likewise.  [PR libc/1269]
 
        * posix/execvp.c (execvp): Allocate array name of correct size.
        Optimize inner loop.  Use execve directly, not execv.
index 886a0ba..e79598b 100644 (file)
@@ -226,7 +226,7 @@ __getcwd (buf, size)
   int prev_errno = errno;
   size_t allocated = size;
 
-  if (size == 0)
+  if (size <= 0)
     {
       if (buf != NULL)
        {
@@ -363,7 +363,7 @@ __getcwd (buf, size)
 
          if ((size_t) (pathp - path) <= namlen)
            {
-             if (size != 0)
+             if (size > 0)
                {
                  (void) __closedir (dirstream);
                  __set_errno (ERANGE);
index cc7b987..223cd31 100644 (file)
@@ -72,7 +72,7 @@ __getcwd (char *buf, size_t size)
   if (no_syscall_getcwd && !have_new_dcache)
     return generic_getcwd (buf, size);
 
-  if (size == 0)
+  if (size <= 0)
     {
       if (buf != NULL)
        {
@@ -179,7 +179,7 @@ __getcwd (char *buf, size_t size)
   __set_errno (save_errno);
 
   /* Don't put restrictions on the length of the path unless the user does.  */
-  if (size == 0)
+  if (size <= 0)
     {
       free (path);
       path = NULL;
@@ -187,7 +187,7 @@ __getcwd (char *buf, size_t size)
 
   result = generic_getcwd (path, size);
 
-  if (result == NULL && buf == NULL && size != 0)
+  if (result == NULL && buf == NULL && size > 0)
     free (path);
 
   return result;