Remove support for old realpath() API
authorPeter Eisentraut <peter@eisentraut.org>
Mon, 12 Aug 2024 05:59:40 +0000 (07:59 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Mon, 12 Aug 2024 06:04:35 +0000 (08:04 +0200)
The now preferred way to call realpath() is by passing NULL as the
second argument and get a malloc'ed result.  We still supported the
old way of providing our own buffer as a second argument, for some
platforms that didn't support the new way yet.  Those were only
Solaris less than version 11 and some older AIX versions (7.1 and
newer appear to support the new variant).  We don't support those
platforms versions anymore, so we can remove this extra code.

Reviewed-by: Heikki Linnakangas <hlinnaka@iki.fi>
Discussion: https://www.postgresql.org/message-id/flat/9e638b49-5c3f-470f-a392-2cbedb2f7855%40eisentraut.org

src/common/exec.c

index 0bee19c1e539fea1186fe9847568caf6c96bbfba..32fd56532aa6732fe59f970fb29133ef70cb10c3 100644 (file)
@@ -285,25 +285,6 @@ pg_realpath(const char *fname)
 
 #ifndef WIN32
        path = realpath(fname, NULL);
-       if (path == NULL && errno == EINVAL)
-       {
-               /*
-                * Cope with old-POSIX systems that require a user-provided buffer.
-                * Assume MAXPGPATH is enough room on all such systems.
-                */
-               char       *buf = malloc(MAXPGPATH);
-
-               if (buf == NULL)
-                       return NULL;            /* assume errno is set */
-               path = realpath(fname, buf);
-               if (path == NULL)               /* don't leak memory */
-               {
-                       int                     save_errno = errno;
-
-                       free(buf);
-                       errno = save_errno;
-               }
-       }
 #else                                                  /* WIN32 */
 
        /*