From 070f850f39cb675d8beb0d43fea29496bf3b2390 Mon Sep 17 00:00:00 2001 From: truckman Date: Mon, 19 May 2014 04:55:53 +0000 Subject: [PATCH] Be even more paranoid about overflow. Requested by: ache git-svn-id: svn://svn.freebsd.org/base/stable/10@266428 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/kern/subr_rman.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sys/kern/subr_rman.c b/sys/kern/subr_rman.c index b53030a55..4101c867a 100644 --- a/sys/kern/subr_rman.c +++ b/sys/kern/subr_rman.c @@ -466,8 +466,8 @@ rman_reserve_resource_bound(struct rman *rm, u_long start, u_long end, } amask = (1ul << RF_ALIGNMENT(flags)) - 1; - if (start + amask < start) { - DPRINTF(("start+amask wrapped around\n")); + if (start > ULONG_MAX - amask) { + DPRINTF(("start+amask would wrap around\n")); goto out; } @@ -487,8 +487,8 @@ rman_reserve_resource_bound(struct rman *rm, u_long start, u_long end, s->r_start, end)); break; } - if (s->r_start + amask < s->r_start) { - DPRINTF(("s->r_start (%#lx) + amask (%#lx) wrapped\n", + if (s->r_start > ULONG_MAX - amask) { + DPRINTF(("s->r_start (%#lx) + amask (%#lx) too large\n", s->r_start, amask)); break; } -- 2.45.0