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.
From aba5b5b6017eff0baa59698de665058843fe1d05 Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <pe...@eisentraut.org>
Date: Mon, 5 Aug 2024 07:50:27 +0200
Subject: [PATCH] Remove support for old realpath() API

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.
---
 src/common/exec.c | 19 -------------------
 1 file changed, 19 deletions(-)

diff --git a/src/common/exec.c b/src/common/exec.c
index 0bee19c1e53..32fd56532aa 100644
--- a/src/common/exec.c
+++ b/src/common/exec.c
@@ -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 */
 
        /*
-- 
2.46.0

Reply via email to