Hello community, here is the log from the commit of package chromium for openSUSE:Factory checked in at 2020-05-07 15:06:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/chromium (Old) and /work/SRC/openSUSE:Factory/.chromium.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "chromium" Thu May 7 15:06:41 2020 rev:256 rq:800599 version:81.0.4044.138 Changes: -------- --- /work/SRC/openSUSE:Factory/chromium/chromium.changes 2020-04-29 20:44:53.948034183 +0200 +++ /work/SRC/openSUSE:Factory/.chromium.new.2738/chromium.changes 2020-05-07 15:06:58.231900483 +0200 @@ -1,0 +2,12 @@ +Wed May 6 07:53:39 UTC 2020 - Tomáš Chvátal <tchva...@suse.com> + +- update to 81.0.4044.138 bsc#1171247: + * CVE-2020-6831: Stack buffer overflow in SCTP + * CVE-2020-6464: Type Confusion in Blink. + +------------------------------------------------------------------- +Tue May 5 07:39:22 UTC 2020 - Ismail Dönmez <idon...@suse.com> + +- Add icu-v67.patch from upstream to fix build with icu v67 + +------------------------------------------------------------------- Old: ---- chromium-81.0.4044.129.tar.xz New: ---- chromium-81.0.4044.138.tar.xz icu-v67.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ chromium.spec ++++++ --- /var/tmp/diff_new_pack.u6JFs2/_old 2020-05-07 15:07:12.883934655 +0200 +++ /var/tmp/diff_new_pack.u6JFs2/_new 2020-05-07 15:07:12.883934655 +0200 @@ -57,7 +57,7 @@ %bcond_with clang %bcond_with wayland Name: chromium -Version: 81.0.4044.129 +Version: 81.0.4044.138 Release: 0 Summary: Google's open source browser project License: BSD-3-Clause AND LGPL-2.1-or-later @@ -95,6 +95,7 @@ Patch21: chromium-80.0.3987.87-missing-string-header.patch Patch22: chromium-80.0.3987.106-missing-cstddef-header.patch Patch23: chromium-80.0.3987.87-missing-cstdint-header.patch +Patch24: icu-v67.patch # Google seem not too keen on merging this but GPU accel is quite important # https://chromium-review.googlesource.com/c/chromium/src/+/532294 # https://github.com/saiarcot895/chromium-ubuntu-build/tree/master/debian/patches ++++++ chromium-81.0.4044.129.tar.xz -> chromium-81.0.4044.138.tar.xz ++++++ /work/SRC/openSUSE:Factory/chromium/chromium-81.0.4044.129.tar.xz /work/SRC/openSUSE:Factory/.chromium.new.2738/chromium-81.0.4044.138.tar.xz differ: char 26, line 1 ++++++ icu-v67.patch ++++++ >From 3f8dc4b2e5baf77b463334c769af85b79d8c1463 Mon Sep 17 00:00:00 2001 From: Frank Tang <ft...@chromium.org> Date: Fri, 3 Apr 2020 23:13:54 -0700 Subject: [PATCH] [intl] Remove soon-to-be removed getAllFieldPositions Needed to land ICU67.1 soon. Bug: v8:10393 Change-Id: I3c7737ca600d6ccfdc46ffaddfb318ce60bc7618 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2136489 Reviewed-by: Jakob Kummerow <jkumme...@chromium.org> Commit-Queue: Frank Tang <ft...@chromium.org> Cr-Commit-Position: refs/heads/master@{#67027} Index: chromium-81.0.4044.129/v8/src/objects/js-number-format.cc =================================================================== --- chromium-81.0.4044.129.orig/v8/src/objects/js-number-format.cc +++ chromium-81.0.4044.129/v8/src/objects/js-number-format.cc @@ -1197,42 +1197,31 @@ MaybeHandle<JSNumberFormat> JSNumberForm } namespace { -Maybe<icu::UnicodeString> IcuFormatNumber( +Maybe<bool> IcuFormatNumber( Isolate* isolate, const icu::number::LocalizedNumberFormatter& number_format, - Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) { + Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) { // If it is BigInt, handle it differently. UErrorCode status = U_ZERO_ERROR; - icu::number::FormattedNumber formatted; if (numeric_obj->IsBigInt()) { Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj); Handle<String> big_int_string; ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string, BigInt::ToString(isolate, big_int), - Nothing<icu::UnicodeString>()); - formatted = number_format.formatDecimal( + Nothing<bool>()); + *formatted = number_format.formatDecimal( {big_int_string->ToCString().get(), big_int_string->length()}, status); } else { double number = numeric_obj->Number(); - formatted = number_format.formatDouble(number, status); + *formatted = number_format.formatDouble(number, status); } if (U_FAILURE(status)) { // This happen because of icu data trimming trim out "unit". // See https://bugs.chromium.org/p/v8/issues/detail?id=8641 - THROW_NEW_ERROR_RETURN_VALUE(isolate, - NewTypeError(MessageTemplate::kIcuError), - Nothing<icu::UnicodeString>()); - } - if (fp_iter) { - formatted.getAllFieldPositions(*fp_iter, status); + THROW_NEW_ERROR_RETURN_VALUE( + isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>()); } - icu::UnicodeString result = formatted.toString(status); - if (U_FAILURE(status)) { - THROW_NEW_ERROR_RETURN_VALUE(isolate, - NewTypeError(MessageTemplate::kIcuError), - Nothing<icu::UnicodeString>()); - } - return Just(result); + return Just(true); } } // namespace @@ -1243,10 +1232,16 @@ MaybeHandle<String> JSNumberFormat::Form Handle<Object> numeric_obj) { DCHECK(numeric_obj->IsNumeric()); - Maybe<icu::UnicodeString> maybe_format = - IcuFormatNumber(isolate, number_format, numeric_obj, nullptr); + icu::number::FormattedNumber formatted; + Maybe<bool> maybe_format = + IcuFormatNumber(isolate, number_format, numeric_obj, &formatted); MAYBE_RETURN(maybe_format, Handle<String>()); - return Intl::ToString(isolate, maybe_format.FromJust()); + UErrorCode status = U_ZERO_ERROR; + icu::UnicodeString result = formatted.toString(status); + if (U_FAILURE(status)) { + THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String); + } + return Intl::ToString(isolate, result); } namespace { @@ -1359,12 +1354,18 @@ std::vector<NumberFormatSpan> FlattenReg } namespace { -Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted, - icu::FieldPositionIterator* fp_iter, +Maybe<int> ConstructParts(Isolate* isolate, + icu::number::FormattedNumber* formatted, Handle<JSArray> result, int start_index, Handle<Object> numeric_obj, bool style_is_unit) { + UErrorCode status = U_ZERO_ERROR; + icu::UnicodeString formatted_text = formatted->toString(status); + if (U_FAILURE(status)) { + THROW_NEW_ERROR_RETURN_VALUE( + isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>()); + } DCHECK(numeric_obj->IsNumeric()); - int32_t length = formatted.length(); + int32_t length = formatted_text.length(); int index = start_index; if (length == 0) return Just(index); @@ -1373,13 +1374,14 @@ Maybe<int> ConstructParts(Isolate* isola // other region covers some part of the formatted string. It's possible // there's another field with exactly the same begin and end as this backdrop, // in which case the backdrop's field_id of -1 will give it lower priority. - regions.push_back(NumberFormatSpan(-1, 0, formatted.length())); + regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length())); { - icu::FieldPosition fp; - while (fp_iter->next(fp)) { - regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(), - fp.getEndIndex())); + icu::ConstrainedFieldPosition cfp; + cfp.constrainCategory(UFIELD_CATEGORY_NUMBER); + while (formatted->nextPosition(cfp, status)) { + regions.push_back( + NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit())); } } @@ -1401,7 +1403,7 @@ Maybe<int> ConstructParts(Isolate* isola Handle<String> substring; ASSIGN_RETURN_ON_EXCEPTION_VALUE( isolate, substring, - Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos), + Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos), Nothing<int>()); Intl::AddElement(isolate, result, index, field_type_string, substring); ++index; @@ -1421,14 +1423,14 @@ MaybeHandle<JSArray> JSNumberFormat::For number_format->icu_number_formatter().raw(); CHECK_NOT_NULL(fmt); - icu::FieldPositionIterator fp_iter; - Maybe<icu::UnicodeString> maybe_format = - IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter); + icu::number::FormattedNumber formatted; + Maybe<bool> maybe_format = + IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted); MAYBE_RETURN(maybe_format, Handle<JSArray>()); Handle<JSArray> result = factory->NewJSArray(0); Maybe<int> maybe_format_to_parts = ConstructParts( - isolate, maybe_format.FromJust(), &fp_iter, result, 0, numeric_obj, + isolate, &formatted, result, 0, numeric_obj, number_format->style() == JSNumberFormat::Style::UNIT); MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());