Module Name:    src
Committed By:   mrg
Date:           Fri Dec 23 06:22:00 UTC 2016

Modified Files:
        src/usr.bin/netstat: inet.c

Log Message:
in getpcblist_sysctl() if sysctlnametomib() fails, return NULL and
set *len = 0, rather than bailing.  now "netstat" doesn't give up
early on kernels without INET6.


To generate a diff of this commit:
cvs rdiff -u -r1.106 -r1.107 src/usr.bin/netstat/inet.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/netstat/inet.c
diff -u src/usr.bin/netstat/inet.c:1.106 src/usr.bin/netstat/inet.c:1.107
--- src/usr.bin/netstat/inet.c:1.106	Sun Feb  8 15:09:45 2015
+++ src/usr.bin/netstat/inet.c	Fri Dec 23 06:22:00 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: inet.c,v 1.106 2015/02/08 15:09:45 christos Exp $	*/
+/*	$NetBSD: inet.c,v 1.107 2016/12/23 06:22:00 mrg Exp $	*/
 
 /*
  * Copyright (c) 1983, 1988, 1993
@@ -34,7 +34,7 @@
 #if 0
 static char sccsid[] = "from: @(#)inet.c	8.4 (Berkeley) 4/20/94";
 #else
-__RCSID("$NetBSD: inet.c,v 1.106 2015/02/08 15:09:45 christos Exp $");
+__RCSID("$NetBSD: inet.c,v 1.107 2016/12/23 06:22:00 mrg Exp $");
 #endif
 #endif /* not lint */
 
@@ -88,6 +88,8 @@ __RCSID("$NetBSD: inet.c,v 1.106 2015/02
 #include <stdlib.h>
 #include <err.h>
 #include <util.h>
+#include <errno.h>
+
 #include "netstat.h"
 #include "vtw.h"
 #include "prog_ops.h"
@@ -240,8 +242,14 @@ getpcblist_sysctl(const char *name, size
 		err(1, "asprintf");
 
 	/* get dynamic pcblist node */
-	if (sysctlnametomib(mibname, mib, &namelen) == -1)
+	if (sysctlnametomib(mibname, mib, &namelen) == -1) {
+		if (errno == ENOENT) {
+			*len = 0;
+			return NULL;
+		}
+			
 		err(1, "sysctlnametomib: %s", mibname);
+	}
 
 	free(mibname);
 

Reply via email to