Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package icu for openSUSE:Factory checked in at 2021-05-15 23:15:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/icu (Old) and /work/SRC/openSUSE:Factory/.icu.new.2988 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icu" Sat May 15 23:15:42 2021 rev:81 rq:892510 version:69.1 Changes: -------- --- /work/SRC/openSUSE:Factory/icu/icu.changes 2021-05-08 22:06:55.273871557 +0200 +++ /work/SRC/openSUSE:Factory/.icu.new.2988/icu.changes 2021-05-15 23:16:43.236611183 +0200 @@ -1,0 +2,6 @@ +Wed May 12 08:23:58 UTC 2021 - Andreas Schwab <sch...@suse.de> + +- nan-undefined-conversion.patch: ICU-21613 Fix undefined behaviour in + ComplexUnitsConverter::applyRounder + +------------------------------------------------------------------- New: ---- nan-undefined-conversion.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ icu.spec ++++++ --- /var/tmp/diff_new_pack.RtpvDA/_old 2021-05-15 23:16:43.904608575 +0200 +++ /var/tmp/diff_new_pack.RtpvDA/_new 2021-05-15 23:16:43.908608559 +0200 @@ -44,6 +44,7 @@ Patch6: icu-error-reporting.diff Patch7: icu-avoid-x87-excess-precision.diff Patch8: locale.diff +Patch9: nan-undefined-conversion.patch BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: pkg-config ++++++ nan-undefined-conversion.patch ++++++ >From 29f1188d191a7a75ac7ffa4bfa390f625da39c53 Mon Sep 17 00:00:00 2001 From: Andreas Schwab <sch...@suse.de> Date: Tue, 11 May 2021 19:04:24 +0200 Subject: [PATCH] ICU-21613 Fix undefined behaviour in ComplexUnitsConverter::applyRounder --- a/source/i18n/units_complexconverter.cpp +++ b/source/i18n/units_complexconverter.cpp @@ -237,6 +237,11 @@ void ComplexUnitsConverter::applyRounder(MaybeStackArray<int64_t, 5> &intValues, } quantity = decimalQuantity.toDouble(); + if (uprv_isNaN(quantity) || uprv_isInfinite(quantity)) { + // Do nothing for non-finite values, since conversion to int64_t is undefined + return; + } + int32_t lastIndex = unitsConverters_.length() - 1; if (lastIndex == 0) { // Only one element, no need to bubble up the carry