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