On Tue, Oct 17, 2017 at 03:11:51PM +0100, Andrew Cooper wrote: > Discovered when running the XSA-232 PoC on a UBSAN-enabled hypervisor. > > (d79) XSA-232 PoC > (XEN) > ================================================================================ > (XEN) UBSAN: Undefined behaviour in grant_table.c:3217:25 > (XEN) left shift of 1 by 31 places cannot be represented in type 'int' > (XEN) ----[ Xen-4.10.0-rc x86_64 debug=y Tainted: H ]---- > > Update all of the GNTTAB_CACHE_* constants to be unsigned integers. > > Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> > --- > CC: George Dunlap <george.dun...@eu.citrix.com> > CC: Jan Beulich <jbeul...@suse.com> > CC: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> > CC: Stefano Stabellini <sstabell...@kernel.org> > CC: Tim Deegan <t...@xen.org> > CC: Wei Liu <wei.l...@citrix.com> > CC: Julien Grall <julien.gr...@arm.com> > > This is a trivial bugfix, and is low risk for 4.10 > --- > xen/include/public/grant_table.h | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/xen/include/public/grant_table.h > b/xen/include/public/grant_table.h > index 018036e..180d62c 100644 > --- a/xen/include/public/grant_table.h > +++ b/xen/include/public/grant_table.h > @@ -589,9 +589,9 @@ struct gnttab_cache_flush { > } a; > uint16_t offset; /* offset from start of grant */ > uint16_t length; /* size within the grant */ > -#define GNTTAB_CACHE_CLEAN (1<<0) > -#define GNTTAB_CACHE_INVAL (1<<1) > -#define GNTTAB_CACHE_SOURCE_GREF (1<<31) > +#define GNTTAB_CACHE_CLEAN (1u<<0) > +#define GNTTAB_CACHE_INVAL (1u<<1) > +#define GNTTAB_CACHE_SOURCE_GREF (1u<<31) > uint32_t op; > }; > typedef struct gnttab_cache_flush gnttab_cache_flush_t; > -- > 2.1.4 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > https://lists.xen.org/xen-devel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel