Hi!

I'm trying to useĀ pg_getaddrinfo_all() with NULL hints, but got segfault.

According to man(3) getaddrinfo, hints may be passed as NULL. In this case af_family

is equivalent to AF_UNSPEC.

I'm adding a patch to pg_getaddrinfo_all() to make it available by passing hintp as NULL.

--
With best regards,
Sergey Tatarintsev,
PostgresPro
From 5b2da1a2ecdb4cc34428426f1e6c4266ce709a86 Mon Sep 17 00:00:00 2001
From: Sergey Tatarintsev <[email protected]>
Date: Mon, 10 Nov 2025 11:41:12 +0700
Subject: [PATCH v1] Ability to pass NULL as a hintp to pg_getaddrinfo_all()

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

diff --git a/src/common/ip.c b/src/common/ip.c
index 0e7897a5c8f..e78a7439a01 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(). */
-- 
2.43.0

Reply via email to