]> granicus.if.org Git - neomutt/commitdiff
Prevent null pointer exception for h->ai_canonname 413/head
authorAthanasios Douitsis <aduitsis@gmail.com>
Sat, 18 Feb 2017 21:30:27 +0000 (21:30 +0000)
committerRichard Russon <rich@flatcap.org>
Mon, 20 Feb 2017 16:49:41 +0000 (16:49 +0000)
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

index 6527a36b9932577d98d34f5cf1e0040544159b88..f7bace7d5845c2dd9ef30f3c1cff33e3fbbf2682 100644 (file)
@@ -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
     {