]> Savannah Git Hosting - gnulib.git/commitdiff
Assume readlink/readlinkat ERANGE fix
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 14 Dec 2020 00:56:10 +0000 (16:56 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 14 Dec 2020 01:34:14 +0000 (17:34 -0800)
* lib/areadlink-with-size.c (areadlink_with_size):
* lib/areadlinkat-with-size.c (areadlinkat_with_size):
* lib/careadlinkat.c (readlink_stk):
Do not worry about readlink or readlinkat failing with errno == ERANGE,
since the Gnulib readlink and readlinkat modules now fix that.

ChangeLog
lib/areadlink-with-size.c
lib/areadlinkat-with-size.c
lib/careadlinkat.c

index 7162110c9f0473fe56cfc58abf490708728ead1a..1c5fd762d44f372c4b278c075a1fa3205ae54a38 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2020-12-13  Paul Eggert  <eggert@cs.ucla.edu>
 
+       Assume readlink/readlinkat ERANGE fix
+       * lib/areadlink-with-size.c (areadlink_with_size):
+       * lib/areadlinkat-with-size.c (areadlinkat_with_size):
+       * lib/careadlinkat.c (readlink_stk):
+       Do not worry about readlink or readlinkat failing with errno == ERANGE,
+       since the Gnulib readlink and readlinkat modules now fix that.
+
        getcwd: port to AIX
        * lib/getcwd.c [!_LIBC]: Undef stat64 before #defining it,
        in case our sys/stat.h #defined a function macro with the same name.
index 86ddd6089cd33cf30ee82a5b4e2d6857539f52bc..4978b79bb0f16df37972e8ce5ada5cdc7aeb20f4 100644 (file)
@@ -88,9 +88,7 @@ areadlink_with_size (char const *file, size_t size)
       r = readlink (file, buf, buf_size);
       link_length = r;
 
-      /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-         with errno == ERANGE if the buffer is too small.  */
-      if (r < 0 && errno != ERANGE)
+      if (r < 0)
         {
           int saved_errno = errno;
           free (buffer);
index b41a5e0c4b9ed35e23cce67d1a92ce73d92eabc9..b3092f2a35217c5191ff92250f8c37b4e85885d0 100644 (file)
@@ -92,9 +92,7 @@ areadlinkat_with_size (int fd, char const *file, size_t size)
       r = readlinkat (fd, file, buf, buf_size);
       link_length = r;
 
-      /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-         with errno == ERANGE if the buffer is too small.  */
-      if (r < 0 && errno != ERANGE)
+      if (r < 0)
         {
           int saved_errno = errno;
           free (buffer);
index 79cc3b3a0a0f015ec2c06bf318d46fa01558fe47..26fe84df55e47ccf61f8e53fa50edbd4984df862 100644 (file)
@@ -90,18 +90,13 @@ readlink_stk (int fd, char const *filename,
       size_t link_size;
       if (link_length < 0)
         {
-          /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-             with errno == ERANGE if the buffer is too small.  */
-          int readlinkat_errno = errno;
-          if (readlinkat_errno != ERANGE)
+          if (buf != buffer)
             {
-              if (buf != buffer)
-                {
-                  alloc->free (buf);
-                  errno = readlinkat_errno;
-                }
-              return NULL;
+              int readlinkat_errno = errno;
+              alloc->free (buf);
+              errno = readlinkat_errno;
             }
+          return NULL;
         }
 
       link_size = link_length;