Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 12 May 2014 13:35:49 -0700 (PDT)
From:      Don Lewis <truckman@FreeBSD.org>
To:        src-committers@FreeBSD.org
Cc:        svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org
Subject:   Re: svn commit: r265931 - head/sys/kern
Message-ID:  <201405122035.s4CKZnv0076365@gw.catspoiler.org>
In-Reply-To: <201405122022.s4CKMh8U037124@svn.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12 May, To: src-committers@freebsd.org wrote:
> Author: truckman
> Date: Mon May 12 20:22:42 2014
> New Revision: 265931
> URL: http://svnweb.freebsd.org/changeset/base/265931
> 
> Log:
>   Be even more paranoid about overflow.
>   
>   Requested by:	ache
> 
> Modified:
>   head/sys/kern/subr_rman.c
> 
> Modified: head/sys/kern/subr_rman.c
> ==============================================================================
> --- head/sys/kern/subr_rman.c	Mon May 12 20:19:40 2014	(r265930)
> +++ head/sys/kern/subr_rman.c	Mon May 12 20:22:42 2014	(r265931)
> @@ -466,8 +466,8 @@ rman_reserve_resource_bound(struct rman 
>  	}
>  
>  	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 
>  			    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;
>  		}
> 

MFC after:	1 week




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201405122035.s4CKZnv0076365>