summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2009-07-21 14:10:14 +0000
committermillert <millert@openbsd.org>2009-07-21 14:10:14 +0000
commit99e53febf88c48dfd377d46b6761bf71fe3076ce (patch)
treed7f55f288ca8a7e14362c832522bda507af6973a
parentAdd a family flag for the original 5700 series chipsets. Idea from FreeBSD. (diff)
downloadwireguard-openbsd-99e53febf88c48dfd377d46b6761bf71fe3076ce.tar.xz
wireguard-openbsd-99e53febf88c48dfd377d46b6761bf71fe3076ce.zip
Handle the case where so_pcb is NULL.
-rw-r--r--lib/libkvm/kvm_file2.c6
-rw-r--r--sys/kern/kern_sysctl.c4
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/libkvm/kvm_file2.c b/lib/libkvm/kvm_file2.c
index 0a5daed9c73..4eafc0aa4fc 100644
--- a/lib/libkvm/kvm_file2.c
+++ b/lib/libkvm/kvm_file2.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kvm_file2.c,v 1.10 2009/07/08 18:59:11 millert Exp $ */
+/* $OpenBSD: kvm_file2.c,v 1.11 2009/07/21 14:10:15 millert Exp $ */
/*
* Copyright (c) 2009 Todd C. Miller <Todd.Miller@courtesan.com>
@@ -46,7 +46,7 @@
*/
#if defined(LIBC_SCCS) && !defined(lint)
-static char *rcsid = "$OpenBSD: kvm_file2.c,v 1.10 2009/07/08 18:59:11 millert Exp $";
+static char *rcsid = "$OpenBSD: kvm_file2.c,v 1.11 2009/07/21 14:10:15 millert Exp $";
#endif /* LIBC_SCCS and not lint */
/*
@@ -525,6 +525,8 @@ fill_file2(kvm_t *kd, struct kinfo_file2 *kf, struct file *fp, struct vnode *vp,
return (-1);
}
kf->so_family = domain.dom_family;
+ if (!sock.so_pcb)
+ break;
switch (kf->so_family) {
case AF_INET: {
struct inpcb inpcb;
diff --git a/sys/kern/kern_sysctl.c b/sys/kern/kern_sysctl.c
index 86a14a2f8b1..82b2bd64b2f 100644
--- a/sys/kern/kern_sysctl.c
+++ b/sys/kern/kern_sysctl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sysctl.c,v 1.176 2009/07/19 12:56:19 millert Exp $ */
+/* $OpenBSD: kern_sysctl.c,v 1.177 2009/07/21 14:10:14 millert Exp $ */
/* $NetBSD: kern_sysctl.c,v 1.17 1996/05/20 17:49:05 mrg Exp $ */
/*-
@@ -1086,6 +1086,8 @@ fill_file2(struct kinfo_file2 *kf, struct file *fp, struct filedesc *fdp,
kf->so_pcb = PTRTOINT64(so->so_pcb);
kf->so_protocol = so->so_proto->pr_protocol;
kf->so_family = so->so_proto->pr_domain->dom_family;
+ if (!so->so_pcb)
+ break;
switch (kf->so_family) {
case AF_INET: {
struct inpcb *inpcb = so->so_pcb;