From 4fe0233cdef56658010643a2acb4c88aab1ebf83 Mon Sep 17 00:00:00 2001
From: Sergey Tatarintsev <s.tatarintsev@postgrespro.ru>
Date: Mon, 10 Nov 2025 11:41:12 +0700
Subject: [PATCH v2] Ability to pass NULL as a hintp to pg_getaddrinfo_all()

---
 src/common/ip.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/common/ip.c b/src/common/ip.c
index 0e7897a5c8f..b9b8cec0873 100644
--- a/src/common/ip.c
+++ b/src/common/ip.c
@@ -58,7 +58,8 @@ pg_getaddrinfo_all(const char *hostname, const char *servname,
 	/* not all versions of getaddrinfo() zero *result on failure */
 	*result = NULL;
 
-	if (hintp->ai_family == AF_UNIX)
+	/* Pass NULL to hintp is equivalent to ai_family=AF_UNSPEC */
+	if (hintp && hintp->ai_family == AF_UNIX)
 		return getaddrinfo_unix(servname, hintp, result);
 
 	/* NULL has special meaning to getaddrinfo(). */
@@ -77,6 +78,7 @@ pg_getaddrinfo_all(const char *hostname, const char *servname,
  * getaddrinfo() routine or our own getaddrinfo_unix() routine.  Some versions
  * of getaddrinfo() might be willing to return AF_UNIX addresses, so it's
  * not safe to look at ai_family in the addrinfo itself.
+ * If original hint structure was NULL, hint_ai_family must be equal to AF_UNSPEC.
  */
 void
 pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo *ai)
-- 
2.43.0

