From 2097879f6e0a7b40ce917b4edd2dcf21399f3109 Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Thu, 8 May 2025 12:21:55 +0000 Subject: [PATCH] math: Fix UB in ldbl-128ibm setpayload --- sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c index bff6c34625..eab69228d1 100644 --- a/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c +++ b/sysdeps/ieee754/ldbl-128ibm/s_setpayloadl_main.c @@ -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; -- 2.47.2