icu/nan-undefined-conversion.patch
Jan Engelhardt 53923606b4 Accepting request 968076 from home:dirkmueller:branches:X11:common:Factory
- update to 71.1:
  * updates to CLDR 41 locale data with various additions and corrections.
  * phrase-based line breaking for Japanese. Existing line breaking methods
    follow standards and conventions for body text but do not work well for
    short Japanese text, such as in titles and headings. This new feature is
    optimized for these use cases.
  * support for Hindi written in Latin letters (hi_Latn). The CLDR data for
    this increasingly popular locale has been significantly revised and
    expanded. Note that based on user expectations, hi_Latn incorporates a
    large amount of English, and can also be referred to as “Hinglish”.
  * time zone data updated to version 2022a. Note that pre-1970 data for a
    number of time zones has been removed, as has been the case in the upstream
    tzdata release since 2021b.
- drop fix-ucptrietest-golden-diff.patch (upstream)

OBS-URL: https://build.opensuse.org/request/show/968076
OBS-URL: https://build.opensuse.org/package/show/X11:common:Factory/icu?expand=0&rev=155
2022-04-11 18:17:04 +00:00

23 lines
890 B
Diff

From 29f1188d191a7a75ac7ffa4bfa390f625da39c53 Mon Sep 17 00:00:00 2001
From: Andreas Schwab <schwab@suse.de>
Date: Tue, 11 May 2021 19:04:24 +0200
Subject: [PATCH] ICU-21613 Fix undefined behaviour in
ComplexUnitsConverter::applyRounder
Index: icu/source/i18n/units_complexconverter.cpp
===================================================================
--- icu.orig/source/i18n/units_complexconverter.cpp
+++ icu/source/i18n/units_complexconverter.cpp
@@ -242,6 +242,11 @@ void ComplexUnitsConverter::applyRounder
}
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