summaryrefslogtreecommitdiffstats
path: root/lib/libkvm/kvm_proc.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2012-04-14 12:11:47 +0000
committerguenther <guenther@openbsd.org>2012-04-14 12:11:47 +0000
commit146016d822d7abb602e5f48d8e9083166d2b29a9 (patch)
treecb9c82e110742fc68c62eebc42fae01f59fc89ec /lib/libkvm/kvm_proc.c
parentKill Boehms GC dead. (diff)
downloadwireguard-openbsd-146016d822d7abb602e5f48d8e9083166d2b29a9.tar.xz
wireguard-openbsd-146016d822d7abb602e5f48d8e9083166d2b29a9.zip
Need to read in the vmspace to dig out the root of the rb-tree
Diffstat (limited to 'lib/libkvm/kvm_proc.c')
-rw-r--r--lib/libkvm/kvm_proc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
index a2555fb77d9..1b412e5f5cf 100644
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kvm_proc.c,v 1.46 2012/03/09 13:02:45 ariane Exp $ */
+/* $OpenBSD: kvm_proc.c,v 1.47 2012/04/14 12:11:47 guenther Exp $ */
/* $NetBSD: kvm_proc.c,v 1.30 1999/03/24 05:50:50 mrg Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -132,6 +132,7 @@ static char *
_kvm_ureadm(kvm_t *kd, const struct miniproc *p, u_long va, u_long *cnt)
{
u_long addr, offset, slot;
+ struct vmspace vm;
struct vm_anon *anonp, anon;
struct vm_map_entry vme;
struct vm_amap amap;
@@ -147,7 +148,9 @@ _kvm_ureadm(kvm_t *kd, const struct miniproc *p, u_long va, u_long *cnt)
* Look through the address map for the memory object
* that corresponds to the given virtual address.
*/
- addr = (u_long)RB_ROOT(&p->p_vmspace->vm_map.addr);
+ if (KREAD(kd, (u_long)p->p_vmspace, &vm))
+ return (NULL);
+ addr = (u_long)RB_ROOT(&vm.vm_map.addr);
while (1) {
if (addr == 0)
return (NULL);