diff options
author | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
---|---|---|
committer | takeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp> | 2020-11-02 11:07:33 +0900 |
commit | 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch) | |
tree | cd70a267a5ef105ba32f200aa088e281fbd85747 /external/poky/meta/recipes-support/icu/icu | |
parent | 4204309872da5cb401cbb2729d9e2d4869a87f42 (diff) |
basesystem-jjsandbox/ToshikazuOhiwa/master-jj
recipes
Diffstat (limited to 'external/poky/meta/recipes-support/icu/icu')
6 files changed, 197 insertions, 39 deletions
diff --git a/external/poky/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch b/external/poky/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch new file mode 100644 index 00000000..91d68848 --- /dev/null +++ b/external/poky/meta/recipes-support/icu/icu/0001-Fix-big-endian-build.patch @@ -0,0 +1,28 @@ +From 9be0b489a94b57419202c552022f25cb95bfac51 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 17 Apr 2019 16:41:58 +0200 +Subject: [PATCH] Fix big-endian build + +Bug-report: https://unicode-org.atlassian.net/browse/ICU-20533 +Patch taken from: https://bugs.gentoo.org/682170 + +it is applied upstream and will be in version 67+ + +Upstream-Status: Backport [https://github.com/unicode-org/icu/commit/4a3a457b38cd828b7b3fa4fdbc6e2504a57275e9] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + data/Makefile.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/data/Makefile.in ++++ b/data/Makefile.in +@@ -148,7 +148,8 @@ ICUDATA_ARCHIVE = $(firstword $(wildcard + # and convert it to the current type.
+ ifneq ($(ICUDATA_ARCHIVE),)
+ ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
+-$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
++$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE)
++ $(MKINSTALLDIRS) $(OUTDIR)
+ $(INVOKE) $(TOOLBINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
+ endif
+ else
diff --git a/external/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch b/external/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch new file mode 100644 index 00000000..299689d9 --- /dev/null +++ b/external/poky/meta/recipes-support/icu/icu/0001-icu-Added-armeb-support.patch @@ -0,0 +1,30 @@ +From 500321387ceca48934bb0f323779117cd518bab6 Mon Sep 17 00:00:00 2001 +From: Lei Maohui <leimaohui@cn.fujitsu.com> +Date: Wed, 8 May 2019 14:42:30 +0900 +Subject: [PATCH] icu: Added armeb support. + +Make icu support arm32 BE. + +Upstream-Status: Pending + +Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com> +--- + i18n/double-conversion-utils.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h +index 1e44fca..e4f2a8b 100644 +--- a/i18n/double-conversion-utils.h ++++ b/i18n/double-conversion-utils.h +@@ -92,7 +92,7 @@ int main(int argc, char** argv) { + // + // If it prints "correct" then the architecture should be here, in the "correct" section. + #if defined(_M_X64) || defined(__x86_64__) || \ +- defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ ++ defined(__arm__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ + defined(__hppa__) || defined(__ia64__) || \ + defined(__mips__) || \ + defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ +-- +2.7.4 + diff --git a/external/poky/meta/recipes-support/icu/icu/0002-Add-ARC-support.patch b/external/poky/meta/recipes-support/icu/icu/0002-Add-ARC-support.patch deleted file mode 100644 index 20e3d835..00000000 --- a/external/poky/meta/recipes-support/icu/icu/0002-Add-ARC-support.patch +++ /dev/null @@ -1,27 +0,0 @@ -From fcfd57105b4bdb30d906df152ef01748fa95daff Mon Sep 17 00:00:00 2001 -From: Alexey Brodkin <abrodkin@synopsys.com> -Date: Thu, 13 Sep 2018 17:13:20 +0300 -Subject: [PATCH] icu: Add ARC support - -Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> - -Upstream-Status: Submitted [ https://github.com/unicode-org/icu/pull/149 ] ---- - i18n/double-conversion-utils.h | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h -index 57fc49b231a3..0bd3e8340673 100644 ---- a/i18n/double-conversion-utils.h -+++ b/i18n/double-conversion-utils.h -@@ -86,7 +86,7 @@ inline void abort_noreturn() { abort(); } - defined(__SH4__) || defined(__alpha__) || \ - defined(_MIPS_ARCH_MIPS32R2) || \ - defined(__AARCH64EL__) || defined(__aarch64__) || \ -- defined(__riscv) -+ defined(__riscv) || defined(__arc__) - #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 - #elif defined(__mc68000__) - #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS -2.17.1 - diff --git a/external/poky/meta/recipes-support/icu/icu/CVE-2020-10531.patch b/external/poky/meta/recipes-support/icu/icu/CVE-2020-10531.patch new file mode 100644 index 00000000..6697b27d --- /dev/null +++ b/external/poky/meta/recipes-support/icu/icu/CVE-2020-10531.patch @@ -0,0 +1,128 @@ +From b7d08bc04a4296982fcef8b6b8a354a9e4e7afca Mon Sep 17 00:00:00 2001 +From: Frank Tang <ftang@chromium.org> +Date: Sat, 1 Feb 2020 02:39:04 +0000 +Subject: [PATCH] ICU-20958 Prevent SEGV_MAPERR in append + +See #971 + +Upstream-Status: Accepted +CVE: CVE-2020-10531 + +Reference to upstream patch: +https://github.com/unicode-org/icu/commit/b7d08bc04a4296982fcef8b6b8a354a9e4e7afca + +--- + common/unistr.cpp | 6 ++- + test/intltest/ustrtest.cpp | 62 +++++++++++++++++++++++++++++++ + test/intltest/ustrtest.h | 1 + + 3 files changed, 68 insertions(+), 1 deletion(-) + +diff --git a/common/unistr.cpp b/common/unistr.cpp +index 901bb33..6ea0915 100644 +--- a/common/unistr.cpp ++++ b/common/unistr.cpp +@@ -1563,7 +1563,11 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng + } + + int32_t oldLength = length(); +- int32_t newLength = oldLength + srcLength; ++ int32_t newLength; ++ if (uprv_add32_overflow(oldLength, srcLength, &newLength)) { ++ setToBogus(); ++ return *this; ++ } + + // Check for append onto ourself + const UChar* oldArray = getArrayStart(); +diff --git a/test/intltest/ustrtest.cpp b/test/intltest/ustrtest.cpp +index b6515ea..ad38bdf 100644 +--- a/test/intltest/ustrtest.cpp ++++ b/test/intltest/ustrtest.cpp +@@ -67,6 +67,7 @@ void UnicodeStringTest::runIndexedTest( int32_t index, UBool exec, const char* & + TESTCASE_AUTO(TestWCharPointers); + TESTCASE_AUTO(TestNullPointers); + TESTCASE_AUTO(TestUnicodeStringInsertAppendToSelf); ++ TESTCASE_AUTO(TestLargeAppend); + TESTCASE_AUTO_END; + } + +@@ -2310,3 +2311,64 @@ void UnicodeStringTest::TestUnicodeStringInsertAppendToSelf() { + str.insert(2, sub); + assertEquals("", u"abbcdcde", str); + } ++ ++void UnicodeStringTest::TestLargeAppend() { ++ if(quick) return; ++ ++ IcuTestErrorCode status(*this, "TestLargeAppend"); ++ // Make a large UnicodeString ++ int32_t len = 0xAFFFFFF; ++ UnicodeString str; ++ char16_t *buf = str.getBuffer(len); ++ // A fast way to set buffer to valid Unicode. ++ // 4E4E is a valid unicode character ++ uprv_memset(buf, 0x4e, len * 2); ++ str.releaseBuffer(len); ++ UnicodeString dest; ++ // Append it 16 times ++ // 0xAFFFFFF times 16 is 0xA4FFFFF1, ++ // which is greater than INT32_MAX, which is 0x7FFFFFFF. ++ int64_t total = 0; ++ for (int32_t i = 0; i < 16; i++) { ++ dest.append(str); ++ total += len; ++ if (total <= INT32_MAX) { ++ assertFalse("dest is not bogus", dest.isBogus()); ++ } else { ++ assertTrue("dest should be bogus", dest.isBogus()); ++ } ++ } ++ dest.remove(); ++ total = 0; ++ for (int32_t i = 0; i < 16; i++) { ++ dest.append(str); ++ total += len; ++ if (total + len <= INT32_MAX) { ++ assertFalse("dest is not bogus", dest.isBogus()); ++ } else if (total <= INT32_MAX) { ++ // Check that a string of exactly the maximum size works ++ UnicodeString str2; ++ int32_t remain = INT32_MAX - total; ++ char16_t *buf2 = str2.getBuffer(remain); ++ if (buf2 == nullptr) { ++ // if somehow memory allocation fail, return the test ++ return; ++ } ++ uprv_memset(buf2, 0x4e, remain * 2); ++ str2.releaseBuffer(remain); ++ dest.append(str2); ++ total += remain; ++ assertEquals("When a string of exactly the maximum size works", (int64_t)INT32_MAX, total); ++ assertEquals("When a string of exactly the maximum size works", INT32_MAX, dest.length()); ++ assertFalse("dest is not bogus", dest.isBogus()); ++ ++ // Check that a string size+1 goes bogus ++ str2.truncate(1); ++ dest.append(str2); ++ total++; ++ assertTrue("dest should be bogus", dest.isBogus()); ++ } else { ++ assertTrue("dest should be bogus", dest.isBogus()); ++ } ++ } ++} +diff --git a/test/intltest/ustrtest.h b/test/intltest/ustrtest.h +index 218befd..4a356a9 100644 +--- a/test/intltest/ustrtest.h ++++ b/test/intltest/ustrtest.h +@@ -97,6 +97,7 @@ public: + void TestWCharPointers(); + void TestNullPointers(); + void TestUnicodeStringInsertAppendToSelf(); ++ void TestLargeAppend(); + }; + + #endif +-- +2.17.1 + diff --git a/external/poky/meta/recipes-support/icu/icu/filter.json b/external/poky/meta/recipes-support/icu/icu/filter.json new file mode 100644 index 00000000..2c63c085 --- /dev/null +++ b/external/poky/meta/recipes-support/icu/icu/filter.json @@ -0,0 +1,2 @@ +{ +} diff --git a/external/poky/meta/recipes-support/icu/icu/fix-install-manx.patch b/external/poky/meta/recipes-support/icu/icu/fix-install-manx.patch index 8186fb41..925b064e 100644 --- a/external/poky/meta/recipes-support/icu/icu/fix-install-manx.patch +++ b/external/poky/meta/recipes-support/icu/icu/fix-install-manx.patch @@ -1,7 +1,7 @@ -From 3063a9211669bee673840ee81f81d30699b9b702 Mon Sep 17 00:00:00 2001 +From a6ddabc8cadb76bfe2d2e374a6702442cfe51cce Mon Sep 17 00:00:00 2001 From: Ross Burton <ross.burton@intel.com> Date: Fri, 9 Oct 2015 17:50:41 +0100 -Subject: [PATCH 2/4] icu: fix install race +Subject: [PATCH] icu: fix install race The generic recursive target calls target-local so also adding it to the dependency list results in races due to install-local being executed twice in @@ -18,11 +18,11 @@ Signed-off-by: Ross Burton <ross.burton@intel.com> source/Makefile.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) -diff --git a/source/Makefile.in b/source/Makefile.in -index c1db15b..4948deb 100644 +diff --git a/Makefile.in b/Makefile.in +index be9435b..ada20d7 100644 --- a/Makefile.in +++ b/Makefile.in -@@ -73,7 +73,7 @@ EXTRA_DATA = +@@ -77,7 +77,7 @@ EXTRA_DATA = ## List of phony targets .PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls \ @@ -31,7 +31,7 @@ index c1db15b..4948deb 100644 distclean-local distclean-recursive doc dist dist-local dist-recursive \ check check-local check-recursive clean-recursive-with-twist install-icu \ doc install-doc tests icu4j-data icu4j-data-install update-windows-makefiles xcheck-local xcheck-recursive xperf xcheck xperf-recursive \ -@@ -84,9 +84,9 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist +@@ -88,9 +88,9 @@ check-exhaustive check-exhaustive-local check-exhaustive-recursive releaseDist ## List of standard targets all: all-local all-recursive @@ -43,15 +43,12 @@ index c1db15b..4948deb 100644 dist: dist-recursive check: all check-recursive check-recursive: all -@@ -350,7 +350,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h - +@@ -357,7 +357,7 @@ config.status: $(srcdir)/configure $(srcdir)/common/unicode/uvernum.h install-manx: $(MANX_FILES) $(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION) + ifneq ($(MANX_FILES),) - $(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION) + $(INSTALL_DATA) $^ $(DESTDIR)$(mandir)/man$(SECTION) + endif config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in - cd $(top_builddir) \ --- -2.14.2 - |