[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] compat/memory: fix build with old gcc
On 15/01/2014 10:41, "Jan Beulich" <JBeulich@xxxxxxxx> wrote: > struct xen_add_to_physmap_batch's size field being uint16_t causes old > compiler versions to warn about the pointless range check done inside > compat_handle_okay(). > > Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> > Tested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Keir Fraser <keir@xxxxxxx> > --- a/xen/common/compat/memory.c > +++ b/xen/common/compat/memory.c > @@ -206,18 +206,20 @@ int compat_memory_op(unsigned int cmd, X > { > unsigned int limit = (COMPAT_ARG_XLAT_SIZE - sizeof(*nat.atpb)) > / (sizeof(nat.atpb->idxs.p) + > sizeof(nat.atpb->gpfns.p)); > + /* Use an intermediate variable to suppress warnings on old gcc: > */ > + unsigned int size = cmp.atpb.size; > xen_ulong_t *idxs = (void *)(nat.atpb + 1); > xen_pfn_t *gpfns = (void *)(idxs + limit); > > if ( copy_from_guest(&cmp.atpb, compat, 1) || > - !compat_handle_okay(cmp.atpb.idxs, cmp.atpb.size) || > - !compat_handle_okay(cmp.atpb.gpfns, cmp.atpb.size) || > - !compat_handle_okay(cmp.atpb.errs, cmp.atpb.size) ) > + !compat_handle_okay(cmp.atpb.idxs, size) || > + !compat_handle_okay(cmp.atpb.gpfns, size) || > + !compat_handle_okay(cmp.atpb.errs, size) ) > return -EFAULT; > > end_extent = start_extent + limit; > - if ( end_extent > cmp.atpb.size ) > - end_extent = cmp.atpb.size; > + if ( end_extent > size ) > + end_extent = size; > > idxs -= start_extent; > gpfns -= start_extent; > > > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |