From dab6a96ebac5ee07a224f602b22267c8f39f4660 Mon Sep 17 00:00:00 2001 From: Athanasios Douitsis Date: Sat, 18 Feb 2017 21:30:27 +0000 Subject: [PATCH] Prevent null pointer exception for h->ai_canonname The getaddrinfo call in line 54 sets &h to a struct addrinfo. If a canonical name cannot be found for the node argument of getaddrinfo, h->ai_canonname is set to NULL. In that case, the strchr call in line 58 can lead to segfault. This behavior was observed on a macos sierra while the hostname was 192.168.1.3 (unfortunately this happens quite often in macos). The fix is simple, just check h->ai_canonname for the NULL value. --- getdomain.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/getdomain.c b/getdomain.c index 6527a36b9..f7bace7d5 100644 --- a/getdomain.c +++ b/getdomain.c @@ -55,7 +55,7 @@ int getdnsdomainname (char *d, size_t len) ret = -1; else { - if (!(p = strchr(h->ai_canonname, '.'))) + if (!h->ai_canonname || !(p = strchr(h->ai_canonname, '.'))) ret = -1; else { -- 2.50.0