summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm_proc.c
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2009-01-21 22:18:00 +0000
committermiod <miod@openbsd.org>2009-01-21 22:18:00 +0000
commitcbe3564fe3f8ca9c5e3600fe588675960d9215e2 (patch)
tree05036d7fc4a5d53900ca2a2b9ef14f99e708a96a /lib/libkvm/kvm_proc.c
parentReplace timeout_add(msecs * hz / 1000) with timeout_add_msec(msecs). (diff)
downloadwireguard-openbsd-cbe3564fe3f8ca9c5e3600fe588675960d9215e2.tar.xz
wireguard-openbsd-cbe3564fe3f8ca9c5e3600fe588675960d9215e2.zip
All operation on live kernels uses sysctl interface, there is no reason to
access the swap area. Change kvm_open() to no longer require a swap area, and to not consider failure to open() it as fatal. Post-mortem analysis would need an image of the swap area at the time of the crash, anyway.
Diffstat (limited to 'lib/libkvm/kvm_proc.c')
-rw-r--r--lib/libkvm/kvm_proc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
index eea2060cfce..a38ce59087d 100644
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kvm_proc.c,v 1.36 2008/06/26 05:42:05 ray Exp $ */
+/* $OpenBSD: kvm_proc.c,v 1.37 2009/01/21 22:18:00 miod Exp $ */
/* $NetBSD: kvm_proc.c,v 1.30 1999/03/24 05:50:50 mrg Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
#if 0
static char sccsid[] = "@(#)kvm_proc.c 8.3 (Berkeley) 9/23/93";
#else
-static char *rcsid = "$OpenBSD: kvm_proc.c,v 1.36 2008/06/26 05:42:05 ray Exp $";
+static char *rcsid = "$OpenBSD: kvm_proc.c,v 1.37 2009/01/21 22:18:00 miod Exp $";
#endif
#endif /* LIBC_SCCS and not lint */
@@ -231,7 +231,8 @@ _kvm_ureadm(kvm_t *kd, const struct miniproc *p, u_long va, u_long *cnt)
(size_t)kd->nbpg, (off_t)pg.phys_addr) != kd->nbpg)
return (NULL);
} else {
- if (_kvm_pread(kd, kd->swfd, (void *)kd->swapspc,
+ if (kd->swfd == -1 ||
+ _kvm_pread(kd, kd->swfd, (void *)kd->swapspc,
(size_t)kd->nbpg,
(off_t)(anon.an_swslot * kd->nbpg)) != kd->nbpg)
return (NULL);