diff options
author | 2003-12-02 01:52:32 +0000 | |
---|---|---|
committer | 2003-12-02 01:52:32 +0000 | |
commit | 3fa1a03bef1d7e2562c46878ae97ddff8509df7d (patch) | |
tree | 76cbf3985d43c61b92342b39482a245e2cc8317b | |
parent | Nothing in vprintf.c is actually used so don't bother compiling it. (diff) | |
download | wireguard-openbsd-3fa1a03bef1d7e2562c46878ae97ddff8509df7d.tar.xz wireguard-openbsd-3fa1a03bef1d7e2562c46878ae97ddff8509df7d.zip |
do not deref null ptr in uvm_markbad() returned from swapdrum_getsdp() as others callers do
-rw-r--r-- | sys/uvm/uvm_swap.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/sys/uvm/uvm_swap.c b/sys/uvm/uvm_swap.c index afeb56a9c3f..856c5c7af24 100644 --- a/sys/uvm/uvm_swap.c +++ b/sys/uvm/uvm_swap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: uvm_swap.c,v 1.56 2003/08/15 20:32:21 tedu Exp $ */ +/* $OpenBSD: uvm_swap.c,v 1.57 2003/12/02 01:52:32 mickey Exp $ */ /* $NetBSD: uvm_swap.c,v 1.40 2000/11/17 11:39:39 mrg Exp $ */ /* @@ -1660,16 +1660,16 @@ uvm_swap_markbad(startslot, nslots) simple_lock(&uvm.swap_data_lock); sdp = swapdrum_getsdp(startslot); - - /* - * we just keep track of how many pages have been marked bad - * in this device, to make everything add up in swap_off(). - * we assume here that the range of slots will all be within - * one swap device. - */ - - sdp->swd_npgbad += nslots; - UVMHIST_LOG(pdhist, "now %d bad", sdp->swd_npgbad, 0,0,0); + if (sdp != NULL) { + /* + * we just keep track of how many pages have been marked bad + * in this device, to make everything add up in swap_off(). + * we assume here that the range of slots will all be within + * one swap device. + */ + sdp->swd_npgbad += nslots; + UVMHIST_LOG(pdhist, "now %d bad", sdp->swd_npgbad, 0,0,0); + } simple_unlock(&uvm.swap_data_lock); } |