NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/56900: panic in uvm_map_findspace



The following reply was made to PR kern/56900; it has been noted by GNATS.

From: Frank Kardel <kardel%netbsd.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: 
Subject: Re: kern/56900: panic in uvm_map_findspace
Date: Thu, 24 Nov 2022 16:07:23 +0100

 No more crashes observed here also.
 
 Thanks for that fix.
 
 Frank
 
 
 On 11/22/22 15:45, Taylor R Campbell wrote:
 > The following reply was made to PR kern/56900; it has been noted by GNATS.
 >
 > From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
 > To: gnats-bugs%NetBSD.org@localhost
 > Cc: wiz%NetBSD.org@localhost
 > Subject: Re: kern/56900: panic in uvm_map_findspace
 > Date: Tue, 22 Nov 2022 14:42:03 +0000
 >
 >   This is a multi-part message in MIME format.
 >   --=_rFLsIlDMAmZS54PhaM3eE2ii5a8qA3Zz
 >   
 >   Can you please try the attached patch?
 >   
 >   --=_rFLsIlDMAmZS54PhaM3eE2ii5a8qA3Zz
 >   Content-Type: text/plain; charset="ISO-8859-1"; name="pr56900"
 >   Content-Transfer-Encoding: quoted-printable
 >   Content-Disposition: attachment; filename="pr56900.patch"
 >   
 >   From dc4aef9f87a74edd401ebb85419cb0b217591108 Mon Sep 17 00:00:00 2001
 >   From: Taylor R Campbell <riastradh%NetBSD.org@localhost>
 >   Date: Tue, 22 Nov 2022 14:40:55 +0000
 >   Subject: [PATCH] mmap(2): Avoid arithmetic overflow in search for free spac=
 >   e.
 >   
 >   PR kern/56900
 >   
 >   Reported-by: syzbot+3833ae1d38037a263d05%syzkaller.appspotmail.com@localhost
 >   https://syzkaller.appspot.com/bug?id=3De542bcf59b2564cca1cb38c12f076fb08dca=
 >   c37e
 >   ---
 >    sys/uvm/uvm_map.c | 15 ++++++++++++++-
 >    1 file changed, 14 insertions(+), 1 deletion(-)
 >   
 >   diff --git a/sys/uvm/uvm_map.c b/sys/uvm/uvm_map.c
 >   index 46b829b478a6..30b5d73dc6f6 100644
 >   --- a/sys/uvm/uvm_map.c
 >   +++ b/sys/uvm/uvm_map.c
 >   @@ -1994,7 +1994,20 @@ uvm_map_findspace(struct vm_map *map, vaddr_t hint, =
 >   vsize_t length,
 >    	/* Try to find the space in the red-black tree */
 >   =20
 >    	/* Check slot before any entry */
 >   -	hint =3D topdown ? entry->next->start - length : entry->end;
 >   +	if (topdown) {
 >   +		KASSERTMSG(entry->next->start >=3D vm_map_min(map),
 >   +		    "map=3D%p entry=3D%p entry->next=3D%p"
 >   +		    " entry->next->start=3D0x%"PRIxVADDR" min=3D0x%"PRIxVADDR,
 >   +		    map, entry, entry->next,
 >   +		    entry->next->start, vm_map_min(map));
 >   +		if (length > entry->next->start - vm_map_min(map))
 >   +			hint =3D vm_map_min(map); /* XXX goto wraparound? */
 >   +		else
 >   +			hint =3D entry->next->start - length;
 >   +		KASSERT(hint >=3D vm_map_min(map));
 >   +	} else {
 >   +		hint =3D entry->end;
 >   +	}
 >    	INVARIANTS();
 >    	avail =3D uvm_map_space_avail(&hint, length, uoffset, align, flags,
 >    	    topdown, entry);
 >   
 >   --=_rFLsIlDMAmZS54PhaM3eE2ii5a8qA3Zz--
 >   
 


Home | Main Index | Thread Index | Old Index