From: Adhemerval Zanella Date: Tue, 22 Apr 2025 17:55:38 +0000 (-0300) Subject: sunrpc: Fix UB on xdr_hyper X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d1b94809c4a582aaaf5592727575e94125e69f8;p=thirdparty%2Fglibc.git sunrpc: Fix UB on xdr_hyper ubsan triggers: UBSAN: Undefined behaviour in xdr.c:262:28 left shift of 18446744073709551615 by 32 cannot be represented in type 'long int' Fix by using unsigned type cast for left shift. --- diff --git a/sunrpc/xdr.c b/sunrpc/xdr.c index a76094d6da..b7b139520e 100644 --- a/sunrpc/xdr.c +++ b/sunrpc/xdr.c @@ -259,7 +259,7 @@ xdr_hyper (XDR *xdrs, quad_t *llp) { if (!XDR_GETLONG(xdrs, &t1) || !XDR_GETLONG(xdrs, &t2)) return FALSE; - *llp = ((quad_t) t1) << 32; + *llp = ((u_quad_t) t1) << 32; *llp |= (uint32_t) t2; return TRUE; }