summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/inet/getaddrinfo.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libc/inet/getaddrinfo.c b/libc/inet/getaddrinfo.c
index fe0d942d9..88bd745a9 100644
--- a/libc/inet/getaddrinfo.c
+++ b/libc/inet/getaddrinfo.c
@@ -401,7 +401,13 @@ gaih_inet(const char *name, const struct gaih_service *service,
int rc;
int v4mapped = (req->ai_family == PF_UNSPEC || req->ai_family == PF_INET6)
&& (req->ai_flags & AI_V4MAPPED);
- unsigned seen = __check_pf();
+ unsigned seen = 0;
+ if (req->ai_flags & AI_ADDRCONFIG) {
+ /* "seen" is only used when AI_ADDRCONFIG is specified.
+ Avoid unnecessary call to __check_pf() otherwise
+ since it can be costly especially when RSBAC-Net is enabled. */
+ seen = __check_pf();
+ }
memset(&nullserv, 0, sizeof(nullserv));