When re-working them to avoid UB on guest address calculations, I failed
to add explicit type checks in exchange for the implicit ones that until
then had happened in assignments that were there anyway.
Fixes: 43d5c5d5f70b ("xen: avoid UB in guest handle arithmetic")
Signed-off-by: Jan Beulich <[email protected]>
--- a/xen/include/xen/guest_access.h
+++ b/xen/include/xen/guest_access.h
@@ -86,6 +86,7 @@
#define copy_from_guest_offset(ptr, hnd, off, nr) ({ \
unsigned long s_ = (unsigned long)(hnd).p; \
typeof(*(ptr)) *_d = (ptr); \
+ (void)((hnd).p == _d); \
raw_copy_from_guest(_d, \
(const void *)(s_ + (off) * sizeof(*_d)), \
(nr) * sizeof(*_d)); \
@@ -140,6 +141,7 @@
#define __copy_from_guest_offset(ptr, hnd, off, nr) ({ \
unsigned long s_ = (unsigned long)(hnd).p; \
typeof(*(ptr)) *_d = (ptr); \
+ (void)((hnd).p == _d); \
__raw_copy_from_guest(_d, \
(const void *)(s_ + (off) * sizeof(*_d)), \
(nr) * sizeof(*_d)); \