]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
math: Fix UB in ldbl-128ibm setpayload azanella/ubsan-undef
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 8 May 2025 12:21:55 +0000 (12:21 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 8 May 2025 13:18:12 +0000 (10:18 -0300)
sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c

index bff6c3462536e6e770449924e147dd947af69425..eab69228d129fc83a50cbc5e5803d6cfce936cc2 100644 (file)
@@ -42,7 +42,8 @@ FUNC (long double *x, long double payload)
   if ((lx & 0x7fffffffffffffffULL) != 0
       || exponent >= BIAS + PAYLOAD_DIG
       || (exponent < BIAS && !(SET_HIGH_BIT && hx == 0))
-      || (hx & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)
+      || ((BIAS + EXPLICIT_MANT_DIG - exponent <= 64)
+         && ((hx & ((1ULL << (BIAS + EXPLICIT_MANT_DIG - exponent)) - 1)) != 0)))
     {
       *x = 0.0L;
       return 1;