From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keir Fraser Subject: Re: [PATCH] x86: properly check XEN_DOMCTL_ioport_mapping arguments for invalid range Date: Tue, 18 Sep 2012 16:39:58 +0100 Message-ID: References: <5058AE5E020000780009C07D@nat28.tlf.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5058AE5E020000780009C07D@nat28.tlf.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich , xen-devel List-Id: xen-devel@lists.xenproject.org On 18/09/2012 16:24, "Jan Beulich" wrote: > In particular, the case of "np" being a very large value wasn't handled > correctly. The range start checks also were off by one (except that in > practice, when "np" is properly range checked, this would still have > been caught by the range end checks). > > Also, is a GFN wrap in XEN_DOMCTL_memory_mapping really okay? Probably worth fixing? > Signed-off-by: Jan Beulich Acked-by: Keir Fraser > --- a/xen/arch/x86/domctl.c > +++ b/xen/arch/x86/domctl.c > @@ -884,7 +884,7 @@ long arch_do_domctl( > int found = 0; > > ret = -EINVAL; > - if ( (np == 0) || (fgp > MAX_IOPORTS) || (fmp > MAX_IOPORTS) || > + if ( ((fgp | fmp | (np - 1)) >= MAX_IOPORTS) || > ((fgp + np) > MAX_IOPORTS) || ((fmp + np) > MAX_IOPORTS) ) > { > printk(XENLOG_G_ERR > > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel