]> The Tcpdump Group git mirrors - tcpdump/commitdiff
DECNET: Fix segmentation fault
authorFrancois-Xavier Le Bail <[email protected]>
Mon, 16 Feb 2015 19:41:55 +0000 (20:41 +0100)
committerFrancois-Xavier Le Bail <[email protected]>
Mon, 16 Feb 2015 19:42:46 +0000 (20:42 +0100)
If the 'dnet_htoa' function return NULL, '(strdup(dnet_htoa(&dna)))'
gives a segmentation fault.

Context:
- libdnet-dev installed (Thus HAVE_DNET_HTOA defined)
- Missing /etc/decnet.conf

print-decnet.c

index 18e991a49637534e52319645acb07b6e0a14ad6b..5414ec20b5cdf486287f090ae4185a71c3144a7a 100644 (file)
@@ -1315,10 +1315,15 @@ dnname_string(u_short dnaddr)
 {
 #ifdef HAVE_DNET_HTOA
        struct dn_naddr dna;
+       char *dnname;
 
        dna.a_len = sizeof(short);
        memcpy((char *)dna.a_addr, (char *)&dnaddr, sizeof(short));
-       return (strdup(dnet_htoa(&dna)));
+       dnname = dnet_htoa(&dna);
+       if(dnname != NULL)
+               return (strdup(dnname));
+       else
+               return(dnnum_string(dnaddr));
 #else
        return(dnnum_string(dnaddr));   /* punt */
 #endif