summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2010-04-16 00:04:52 +0000
committerArfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org>2010-04-16 00:04:52 +0000
commit8e7d4d568bb821ee61a359de59da6dd982573db5 (patch)
treef9391ba5767631d4e39c5422c893ed2ffb6a1aca /dev-libs/icu
parentSet QA_DT_NEEDED (bug #215729). Install libicutest (bug #310297). (diff)
downloadgentoo-2-8e7d4d568bb821ee61a359de59da6dd982573db5.tar.gz
gentoo-2-8e7d4d568bb821ee61a359de59da6dd982573db5.tar.bz2
gentoo-2-8e7d4d568bb821ee61a359de59da6dd982573db5.zip
Delete older ebuilds.
Diffstat (limited to 'dev-libs/icu')
-rw-r--r--dev-libs/icu/Manifest9
-rw-r--r--dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff309
-rw-r--r--dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff305
-rw-r--r--dev-libs/icu/files/icu-3.8-setBreakType-public.diff24
-rw-r--r--dev-libs/icu/icu-3.6-r2.ebuild35
-rw-r--r--dev-libs/icu/icu-3.8.1-r1.ebuild86
6 files changed, 0 insertions, 768 deletions
diff --git a/dev-libs/icu/Manifest b/dev-libs/icu/Manifest
index 4df84495e208..e31916cf464a 100644
--- a/dev-libs/icu/Manifest
+++ b/dev-libs/icu/Manifest
@@ -1,25 +1,16 @@
-AUX icu-3.6-regexp-CVE-2007-4770+4771.diff 10813 RMD160 e28e0704389087b49263b93781cfaf8564ba7bd0 SHA1 42da32eb2aaa9ffed8b67d88268d8b144186cbb6 SHA256 ae908b683114b4874a84abdee963bcf6ff4dd65f9ba045b1843dffa1df7ac02f
-AUX icu-3.8-regexp-CVE-2007-4770+4771.diff 10839 RMD160 efeef3970293df08a430e5c797d0b9c3a8198dfd SHA1 aceeabc01355360866cb17811f4ad7e709498b80 SHA256 ec22413f8544c399241b9a7ca6d9c92c5414701ec1d7f536fdb8e6fe35717916
-AUX icu-3.8-setBreakType-public.diff 900 RMD160 ba2d421389829d25b04ae6debc8ad16f2f183ddf SHA1 692f373ea8e52189b7dfa60dd34805411488ef2b SHA256 b3f2b1651ae47ef9c0ba72712dc88d377ac92e6d3f1f621316aead217f4ee325
AUX icu-4.0.1-TestDisplayNamesMeta.patch 8259 RMD160 4eb64876eee0ff21577f8330326ba96010545cc1 SHA1 d8fe22be87fbb99f8c1a0bbb9d94bc2d93ca083a SHA256 cfcedc486f4c530e43b5fffacf4068f76d026ab73dd4aa1dff253fc87c2e462c
AUX icu-4.0.1-fix_parallel_building.patch 145 RMD160 d7e74631383b01a7cd9d18f9fda2949e1b3ec198 SHA1 5edcb46b7730b11aeaf5ed2e8e968e588eb1d492 SHA256 244bee4fcabe5c1bcf95af2d9a01d87b2de27407e662f2c1663c5ce15ac8a561
AUX icu-4.2.1-fix_misoptimizations.patch 792 RMD160 e2057694f0e29ab4cd121811e1dcd727252589ef SHA1 805e3f9f2396d49d7212d1ef6e76a211f3c9e222 SHA256 b464091bc0f0f018b7597400851f628b1236938e090a9b3fe49c0baa45d2b60f
AUX icu-4.2.1-pkgdata-build_data_without_assembly.patch 378 RMD160 37f147df705c906f9af47b4c865fe7c865952313 SHA1 a5228b4587915d3ff89d81bad1ba0ae0566dd2e4 SHA256 7ee4dafc261b569229e86553248da738a8bb8ab758dd0c557e69eb891c667e5c
AUX icu-4.2.1-pkgdata.patch 4823 RMD160 3ab8ac44294ca6133429fdfbf962ac7b73fdfe72 SHA1 55c618ac12906b3778b129b83cc1db0d153accd3 SHA256 f8dd5dcd0f2a01e6b5859e05cc21bb8a3469b940a918903fc086c58643ecbd55
AUX icu-4.4-install_libicutest.patch 1626 RMD160 7b96c085fc73a0477613d49484584acef53959e4 SHA1 9c869f8ffcead44193c2678869e6967e983ccd9e SHA256 c734852b18b0b70f66a6c5975354b5f1ef8ab2f5172e9f096e4cc4fdf15b0695
-DIST icu-3_8-userguide.zip 2611858 RMD160 8fa028c73aedb9ef5fe2ff895469088ee0a4b5af SHA1 de16e72a8f53da466223ea34fb7385fe52b06736 SHA256 c61a3c2c923e08b5e0ee544b5e417058e4566878f8144a745924c5693ca160bb
DIST icu-4_0-userguide.zip 2201832 RMD160 efbde385d89be4f91f4945c963d3abc118121f50 SHA1 a4c7bbe4ce0b99bf907b598620aa58daf51d6883 SHA256 db9accfdfdb6536881513d8d0c09ff53cee0340804f0f06ed4fb303cceed1092
-DIST icu4c-3_6-src.tgz 10183358 RMD160 b227ac9ff6019362bc4d01c18433869b0e0ff1c2 SHA1 b580c2802e74eb6af7e5e19b05c7d7c5d8c623f9 SHA256 5135e8d69d6206d320515df7aeee7027711ab1aef9d8dbf29571a97a9746b041
-DIST icu4c-3_8-docs.zip 4001018 RMD160 927f4466758722e958b90a2bae873b11da222e88 SHA1 94b47b5dd88bce15dab608719efbbd405d15e912 SHA256 6d920a2cd7b54d8ccb2ccc417f0a0c0c55a615cf461bffbd4d5103c0182835d6
-DIST icu4c-3_8_1-src.tgz 10998841 RMD160 d297330ff0eb91bff5ac91e59188f1751f899032 SHA1 c2b933aee6741c28956f1b87dc514dee49b949aa SHA256 16dda09dff3f770e629313a4c50a82fee88baf87d89a3bb2a28806be07766cee
DIST icu4c-4_0-docs.zip 4366805 RMD160 ce81012d86ff609b443b710f822f107d629a75ed SHA1 9a7c0a0c63adf02fb156b076d76acaa7dc59a15b SHA256 d99ffa2356e45620b49d71c43a21f830f92d3cf7eb5aa0b02b23580c2289bed6
DIST icu4c-4_0_1-src.tgz 12356471 RMD160 e40e7ffddd3134a34fe7e7bc98d776c5b67b637c SHA1 65a65e9cd5670e113031def9448f65fb8f84f47a SHA256 fe4d33cc7393c355df7b13080e1c3717ec1acac2f8cfe452b691f33c5f467259
DIST icu4c-4_2-docs.zip 4767072 RMD160 0ef1c2ef6f649924fa9ee603a48ae664965b0eec SHA1 703760245543aa64fa92084d77bba4f019bab0ae SHA256 2310cc74088ea715b083e24ff75d9d2c71533712b190eaccc901c6cb6bfd196f
DIST icu4c-4_2_1-src.tgz 13161131 RMD160 1b94317a117c40d564ec047cff9cb2de2de3bd9e SHA1 872a77fca51325ab0b335cbbadc1739576078434 SHA256 814de31e1413df945cdd34939b424c4cf7a94d1c481f2d44c99c8ca52b288063
DIST icu4c-4_4-docs.zip 4743886 RMD160 6321fdc500d018358578249d32e84cfdc3f17db7 SHA1 fc76c72f8fa8954e6348fa2a34530cbc44e1491d SHA256 d7b21930173f9e4a9325bb7056081183c9fb395ca4eb259e9f5ea95239e53418
DIST icu4c-4_4-src.tgz 16428350 RMD160 ef777ba1324cced2b4dbd1438ed7543eaf115d63 SHA1 6f01fe700e4ba035888c10ec7e964e1772c7f626 SHA256 96caab011e784b004ce5867665fe711402a53eb6d19a8817f582c819711f93f3
-EBUILD icu-3.6-r2.ebuild 951 RMD160 9bbf921a1e5cdf0c14d3cbc6319f15c99c9fd255 SHA1 88de3f6de23f0a3a3d55d158a7f3f880aee23f4b SHA256 948a2a6ef61fb2669fc38f57bfb10773e9835523446f7356259058a0cdf6b086
-EBUILD icu-3.8.1-r1.ebuild 2305 RMD160 6b6537758e8ff7038e362b02d412afb3d4e267b4 SHA1 1d37dd15f7c899010807726bf25a723776f80ba1 SHA256 a766cd6d4950c0fe44126c53a8fa14704a7293cf0b1120b0ba9611247b84e6e0
EBUILD icu-4.0.1.ebuild 2172 RMD160 bf0956acfe882128b7be0508b473cc45d2fa5827 SHA1 90f225176c33db740be4f0a7eade80bf9a3b5f1c SHA256 89ec96ebcbe1520c215887b127c3b1b6cf71a0d68af43f975f086cc3e6257a3a
EBUILD icu-4.2.1.ebuild 2092 RMD160 1bcd9e0b51536bd5726d8b7fbd7065cdd81a37ba SHA1 18ebdeb5a06bc3087bd25984c2f930a015d71d09 SHA256 63d07ed11f3009af74eb0f266b7df17f6f757eb7e40d5512b47100e48a6dd60d
EBUILD icu-4.4-r1.ebuild 1906 RMD160 317ae46be84eebc8af1e747b7d96586921add441 SHA1 ee0e032d0ee4c51fa9740acbd6ca96835671a3d9 SHA256 f3a007e0fdf560d9a70a7f49c602ffc0c5b4c70ff4b565123a7d568017854d94
diff --git a/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff b/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff
deleted file mode 100644
index 07979a453122..000000000000
--- a/dev-libs/icu/files/icu-3.6-regexp-CVE-2007-4770+4771.diff
+++ /dev/null
@@ -1,309 +0,0 @@
-# borrowed from redhat -- https://bugzilla.redhat.com/show_bug.cgi?id=429023
-
-diff -ru icu.orig/source/common/uvectr32.cpp icu/source/common/uvectr32.cpp
---- icu.orig/source/common/uvectr32.cpp 2003-08-27 02:01:30.000000000 +0100
-+++ icu/source/common/uvectr32.cpp 2008-01-22 08:37:06.000000000 +0000
-@@ -1,6 +1,6 @@
- /*
- ******************************************************************************
--* Copyright (C) 1999-2003, International Business Machines Corporation and *
-+* Copyright (C) 1999-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
- * Date Name Description
-@@ -26,6 +26,7 @@
- UVector32::UVector32(UErrorCode &status) :
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(NULL)
- {
- _init(DEFUALT_CAPACITY, status);
-@@ -34,6 +35,7 @@
- UVector32::UVector32(int32_t initialCapacity, UErrorCode &status) :
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(0)
- {
- _init(initialCapacity, status);
-@@ -46,6 +48,9 @@
- if (initialCapacity < 1) {
- initialCapacity = DEFUALT_CAPACITY;
- }
-+ if (maxCapacity>0 && maxCapacity<initialCapacity) {
-+ initialCapacity = maxCapacity;
-+ }
- elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity);
- if (elements == 0) {
- status = U_MEMORY_ALLOCATION_ERROR;
-@@ -189,21 +194,35 @@
- UBool UVector32::expandCapacity(int32_t minimumCapacity, UErrorCode &status) {
- if (capacity >= minimumCapacity) {
- return TRUE;
-- } else {
-- int32_t newCap = capacity * 2;
-- if (newCap < minimumCapacity) {
-- newCap = minimumCapacity;
-- }
-- int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-- if (newElems == 0) {
-- status = U_MEMORY_ALLOCATION_ERROR;
-- return FALSE;
-- }
-- uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-- uprv_free(elements);
-- elements = newElems;
-- capacity = newCap;
-- return TRUE;
-+ }
-+ if (maxCapacity>0 && minimumCapacity>maxCapacity) {
-+ status = U_BUFFER_OVERFLOW_ERROR;
-+ return FALSE;
-+ }
-+ int32_t newCap = capacity * 2;
-+ if (newCap < minimumCapacity) {
-+ newCap = minimumCapacity;
-+ }
-+ if (maxCapacity > 0 && newCap > maxCapacity) {
-+ newCap = maxCapacity;
-+ }
-+ int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-+ if (newElems == 0) {
-+ status = U_MEMORY_ALLOCATION_ERROR;
-+ return FALSE;
-+ }
-+ uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-+ uprv_free(elements);
-+ elements = newElems;
-+ capacity = newCap;
-+ return TRUE;
-+}
-+
-+void UVector32::setMaxCapacity(int32_t limit) {
-+ U_ASSERT(limit >= 0);
-+ maxCapacity = limit;
-+ if (maxCapacity < 0) {
-+ maxCapacity = 0;
- }
- }
-
-diff -ru icu.orig/source/common/uvectr32.h icu/source/common/uvectr32.h
---- icu.orig/source/common/uvectr32.h 2006-01-18 03:52:04.000000000 +0000
-+++ icu/source/common/uvectr32.h 2008-01-22 08:37:07.000000000 +0000
-@@ -1,6 +1,6 @@
- /*
- **********************************************************************
--* Copyright (C) 1999-2006, International Business Machines
-+* Copyright (C) 1999-2008, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
- */
-@@ -61,6 +61,8 @@
- int32_t count;
-
- int32_t capacity;
-+
-+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow.
-
- int32_t* elements;
-
-@@ -162,6 +164,14 @@
- int32_t *getBuffer() const;
-
- /**
-+ * Set the maximum allowed buffer capacity for this vector/stack.
-+ * Default with no limit set is unlimited, go until malloc() fails.
-+ * A Limit of zero means unlimited capacity.
-+ * Units are vector elements (32 bits each), not bytes.
-+ */
-+ void setMaxCapacity(int32_t limit);
-+
-+ /**
- * ICU "poor man's RTTI", returns a UClassID for this class.
- */
- static UClassID U_EXPORT2 getStaticClassID();
-@@ -221,7 +231,9 @@
- }
-
- inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) {
-- ensureCapacity(count+size, status);
-+ if (ensureCapacity(count+size, status) == FALSE) {
-+ return NULL;
-+ }
- int32_t *rp = elements+count;
- count += size;
- return rp;
-diff -ru icu.orig/source/i18n/regexcmp.cpp icu/source/i18n/regexcmp.cpp
---- icu.orig/source/i18n/regexcmp.cpp 2006-02-02 04:37:14.000000000 +0000
-+++ icu/source/i18n/regexcmp.cpp 2008-01-22 08:37:06.000000000 +0000
-@@ -1187,14 +1187,17 @@
- // Because capture groups can be forward-referenced by back-references,
- // we fill the operand with the capture group number. At the end
- // of compilation, it will be changed to the variable's location.
-- U_ASSERT(groupNum > 0);
-- int32_t op;
-- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ if (groupNum < 1) {
-+ error(U_REGEX_INVALID_BACK_REF);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-+ int32_t op;
-+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-+ op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ } else {
-+ op = URX_BUILD(URX_BACKREF, groupNum);
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
- }
- break;
-
-diff -ru icu.orig/source/i18n/rematch.cpp icu/source/i18n/rematch.cpp
---- icu.orig/source/i18n/rematch.cpp 2005-08-25 19:02:20.000000000 +0100
-+++ icu/source/i18n/rematch.cpp 2008-01-22 08:37:44.000000000 +0000
-@@ -30,6 +30,15 @@
-
- U_NAMESPACE_BEGIN
-
-+// Limit the size of the back track stack, to avoid system failures caused
-+// by heap exhaustion. Units are in 32 bit words, not bytes.
-+// This value puts ICU's limits higher than most other regexp implementations,
-+// which use recursion rather than the heap, and take more storage per
-+// backtrack point.
-+// This constant is _temporary_. Proper API to control the value will added.
-+//
-+static const int32_t BACKTRACK_STACK_CAPACITY = 8000000;
-+
- //-----------------------------------------------------------------------------
- //
- // Constructor and Destructor
-@@ -53,6 +62,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- fDeferredStatus = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
-
- reset(*RegexStaticSets::gStaticSets->fEmptyString);
-@@ -78,6 +89,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(input);
- }
-@@ -102,6 +115,8 @@
- }
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(*RegexStaticSets::gStaticSets->fEmptyString);
- }
-@@ -1015,6 +1030,14 @@
- inline REStackFrame *RegexMatcher::StateSave(REStackFrame *fp, int32_t savePatIdx, int32_t frameSize, UErrorCode &status) {
- // push storage for a new frame.
- int32_t *newFP = fStack->reserveBlock(frameSize, status);
-+ if (newFP == NULL) {
-+ // Heap allocation error on attempted stack expansion.
-+ // We need to return a writable stack frame, so just return the
-+ // previous frame. The match operation will stop quickly
-+ // becuase of the error status, after which the frame will never
-+ // be looked at again.
-+ return fp;
-+ }
- fp = (REStackFrame *)(newFP - frameSize); // in case of realloc of stack.
-
- // New stack frame = copy of old top frame.
-@@ -1030,8 +1053,8 @@
- fp->fPatIdx = savePatIdx;
- return (REStackFrame *)newFP;
- }
--
--
-+
-+
- //--------------------------------------------------------------------------------
- //
- // MatchAt This is the actual matching engine.
-@@ -2262,6 +2285,7 @@
- }
-
- if (U_FAILURE(status)) {
-+ isMatch = FALSE;
- break;
- }
- }
-diff -ru icu.orig/source/test/intltest/regextst.cpp icu/source/test/intltest/regextst.cpp
---- icu.orig/source/test/intltest/regextst.cpp 2005-07-05 19:39:00.000000000 +0100
-+++ icu/source/test/intltest/regextst.cpp 2008-01-22 08:38:21.000000000 +0000
-@@ -66,6 +66,10 @@
- case 6: name = "PerlTests";
- if (exec) PerlTests();
- break;
-+ case 7: name = "Bug 6149";
-+ if (exec) Bug6149();
-+ break;
-+
-
-
- default: name = "";
-@@ -1637,6 +1641,13 @@
- // UnicodeSet containing a string
- REGEX_ERR("abc[{def}]xyz", 1, 10, U_REGEX_SET_CONTAINS_STRING);
-
-+
-+ // Invalid Back Reference \0
-+ // For ICU 3.8 and earlier
-+ // For ICU versions newer than 3.8, \0 introduces an octal escape.
-+ //
-+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF);
-+
- }
-
-
-@@ -2119,6 +2130,26 @@
- }
-
-
-+//--------------------------------------------------------------
-+//
-+// Bug6149 Verify limits to heap expansion for backtrack stack.
-+// Use this pattern,
-+// "(a?){1,}"
-+// The zero-length match will repeat forever.
-+// (That this goes into a loop is another bug)
-+//
-+//---------------------------------------------------------------
-+void RegexTest::Bug6149() {
-+ UnicodeString pattern("(a?){1,}");
-+ UnicodeString s("xyz");
-+ uint32_t flags = 0;
-+ UErrorCode status = U_ZERO_ERROR;
-+
-+ RegexMatcher matcher(pattern, s, flags, status);
-+ UBool result = false;
-+ REGEX_ASSERT_FAIL(result=matcher.matches(status), U_BUFFER_OVERFLOW_ERROR);
-+ REGEX_ASSERT(result == FALSE);
-+ }
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-
-diff -ru icu.orig/source/test/intltest/regextst.h icu/source/test/intltest/regextst.h
---- icu.orig/source/test/intltest/regextst.h 2003-12-03 06:58:28.000000000 +0000
-+++ icu/source/test/intltest/regextst.h 2008-01-22 08:37:06.000000000 +0000
-@@ -30,6 +30,7 @@
- virtual void Extended();
- virtual void Errors();
- virtual void PerlTests();
-+ virtual void Bug6149();
-
- // The following functions are internal to the regexp tests.
- virtual UBool doRegexLMTest(const char *pat, const char *text, UBool looking, UBool match, int line);
diff --git a/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff b/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff
deleted file mode 100644
index 545540a4cfc7..000000000000
--- a/dev-libs/icu/files/icu-3.8-regexp-CVE-2007-4770+4771.diff
+++ /dev/null
@@ -1,305 +0,0 @@
-Index: /icu/branches/maint/maint-3-8/source/i18n/regexcmp.cpp
-===================================================================
---- i18n/regexcmp.cpp (revision 21805)
-+++ i18n/regexcmp.cpp (revision 23292)
-@@ -3,5 +3,5 @@
- // file: regexcmp.cpp
- //
--// Copyright (C) 2002-2007 International Business Machines Corporation and others.
-+// Copyright (C) 2002-2008 International Business Machines Corporation and others.
- // All Rights Reserved.
- //
-@@ -1187,12 +1187,15 @@
- // we fill the operand with the capture group number. At the end
- // of compilation, it will be changed to the variable's location.
-- U_ASSERT(groupNum > 0);
-- int32_t op;
-- if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-- op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ if (groupNum < 1) {
-+ error(U_REGEX_INVALID_BACK_REF);
- } else {
-- op = URX_BUILD(URX_BACKREF, groupNum);
-- }
-- fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ int32_t op;
-+ if (fModeFlags & UREGEX_CASE_INSENSITIVE) {
-+ op = URX_BUILD(URX_BACKREF_I, groupNum);
-+ } else {
-+ op = URX_BUILD(URX_BACKREF, groupNum);
-+ }
-+ fRXPat->fCompiledPat->addElement(op, *fStatus);
-+ }
- }
- break;
-Index: /icu/branches/maint/maint-3-8/source/i18n/rematch.cpp
-===================================================================
---- i18n/rematch.cpp (revision 21973)
-+++ i18n/rematch.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **************************************************************************
--* Copyright (C) 2002-2007 International Business Machines Corporation *
-+* Copyright (C) 2002-2008 International Business Machines Corporation *
- * and others. All rights reserved. *
- **************************************************************************
-@@ -30,4 +30,13 @@
-
- U_NAMESPACE_BEGIN
-+
-+// Limit the size of the back track stack, to avoid system failures caused
-+// by heap exhaustion. Units are in 32 bit words, not bytes.
-+// This value puts ICU's limits higher than most other regexp implementations,
-+// which use recursion rather than the heap, and take more storage per
-+// backtrack point.
-+// This constant is _temporary_. Proper API to control the value will added.
-+//
-+static const int32_t BACKTRACK_STACK_CAPACITY = 8000000;
-
- //-----------------------------------------------------------------------------
-@@ -54,6 +63,7 @@
- if (fStack == NULL || fData == NULL) {
- fDeferredStatus = U_MEMORY_ALLOCATION_ERROR;
-- }
--
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
-+ }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
- }
-@@ -79,4 +89,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(input);
-@@ -103,4 +115,6 @@
- if (fStack == NULL || fData == NULL) {
- status = U_MEMORY_ALLOCATION_ERROR;
-+ } else {
-+ fStack->setMaxCapacity(BACKTRACK_STACK_CAPACITY);
- }
- reset(RegexStaticSets::gStaticSets->fEmptyString);
-@@ -1015,4 +1029,12 @@
- // push storage for a new frame.
- int32_t *newFP = fStack->reserveBlock(frameSize, status);
-+ if (newFP == NULL) {
-+ // Heap allocation error on attempted stack expansion.
-+ // We need to return a writable stack frame, so just return the
-+ // previous frame. The match operation will stop quickly
-+ // becuase of the error status, after which the frame will never
-+ // be looked at again.
-+ return fp;
-+ }
- fp = (REStackFrame *)(newFP - frameSize); // in case of realloc of stack.
-
-@@ -1030,6 +1052,6 @@
- return (REStackFrame *)newFP;
- }
--
--
-+
-+
- //--------------------------------------------------------------------------------
- //
-@@ -2262,4 +2284,5 @@
-
- if (U_FAILURE(status)) {
-+ isMatch = FALSE;
- break;
- }
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.h
-===================================================================
---- test/intltest/regextst.h (revision 22001)
-+++ test/intltest/regextst.h (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -31,4 +31,5 @@
- virtual void Errors();
- virtual void PerlTests();
-+ virtual void Bug6149();
-
- // The following functions are internal to the regexp tests.
-Index: /icu/branches/maint/maint-3-8/source/test/intltest/regextst.cpp
-===================================================================
---- test/intltest/regextst.cpp (revision 22057)
-+++ test/intltest/regextst.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /********************************************************************
- * COPYRIGHT:
-- * Copyright (c) 2002-2007, International Business Machines Corporation and
-+ * Copyright (c) 2002-2008, International Business Machines Corporation and
- * others. All Rights Reserved.
- ********************************************************************/
-@@ -67,4 +67,8 @@
- if (exec) PerlTests();
- break;
-+ case 7: name = "Bug 6149";
-+ if (exec) Bug6149();
-+ break;
-+
-
-
-@@ -1640,4 +1644,10 @@
- // Ticket 5389
- REGEX_ERR("*c", 1, 1, U_REGEX_RULE_SYNTAX);
-+
-+ // Invalid Back Reference \0
-+ // For ICU 3.8 and earlier
-+ // For ICU versions newer than 3.8, \0 introduces an octal escape.
-+ //
-+ REGEX_ERR("(ab)\\0", 1, 6, U_REGEX_INVALID_BACK_REF);
-
- }
-@@ -2123,4 +2133,24 @@
-
-
-+//--------------------------------------------------------------
-+//
-+// Bug6149 Verify limits to heap expansion for backtrack stack.
-+// Use this pattern,
-+// "(a?){1,}"
-+// The zero-length match will repeat forever.
-+// (That this goes into a loop is another bug)
-+//
-+//---------------------------------------------------------------
-+void RegexTest::Bug6149() {
-+ UnicodeString pattern("(a?){1,}");
-+ UnicodeString s("xyz");
-+ uint32_t flags = 0;
-+ UErrorCode status = U_ZERO_ERROR;
-+
-+ RegexMatcher matcher(pattern, s, flags, status);
-+ UBool result = false;
-+ REGEX_ASSERT_FAIL(result=matcher.matches(status), U_BUFFER_OVERFLOW_ERROR);
-+ REGEX_ASSERT(result == FALSE);
-+ }
-
- #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.cpp
-===================================================================
---- common/uvectr32.cpp (revision 12958)
-+++ common/uvectr32.cpp (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- ******************************************************************************
--* Copyright (C) 1999-2003, International Business Machines Corporation and *
-+* Copyright (C) 1999-2008, International Business Machines Corporation and *
- * others. All Rights Reserved. *
- ******************************************************************************
-@@ -27,4 +27,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(NULL)
- {
-@@ -35,4 +36,5 @@
- count(0),
- capacity(0),
-+ maxCapacity(0),
- elements(0)
- {
-@@ -46,4 +48,7 @@
- if (initialCapacity < 1) {
- initialCapacity = DEFUALT_CAPACITY;
-+ }
-+ if (maxCapacity>0 && maxCapacity<initialCapacity) {
-+ initialCapacity = maxCapacity;
- }
- elements = (int32_t *)uprv_malloc(sizeof(int32_t)*initialCapacity);
-@@ -190,19 +195,33 @@
- if (capacity >= minimumCapacity) {
- return TRUE;
-- } else {
-- int32_t newCap = capacity * 2;
-- if (newCap < minimumCapacity) {
-- newCap = minimumCapacity;
-- }
-- int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-- if (newElems == 0) {
-- status = U_MEMORY_ALLOCATION_ERROR;
-- return FALSE;
-- }
-- uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-- uprv_free(elements);
-- elements = newElems;
-- capacity = newCap;
-- return TRUE;
-+ }
-+ if (maxCapacity>0 && minimumCapacity>maxCapacity) {
-+ status = U_BUFFER_OVERFLOW_ERROR;
-+ return FALSE;
-+ }
-+ int32_t newCap = capacity * 2;
-+ if (newCap < minimumCapacity) {
-+ newCap = minimumCapacity;
-+ }
-+ if (maxCapacity > 0 && newCap > maxCapacity) {
-+ newCap = maxCapacity;
-+ }
-+ int32_t* newElems = (int32_t *)uprv_malloc(sizeof(int32_t)*newCap);
-+ if (newElems == 0) {
-+ status = U_MEMORY_ALLOCATION_ERROR;
-+ return FALSE;
-+ }
-+ uprv_memcpy(newElems, elements, sizeof(elements[0]) * count);
-+ uprv_free(elements);
-+ elements = newElems;
-+ capacity = newCap;
-+ return TRUE;
-+}
-+
-+void UVector32::setMaxCapacity(int32_t limit) {
-+ U_ASSERT(limit >= 0);
-+ maxCapacity = limit;
-+ if (maxCapacity < 0) {
-+ maxCapacity = 0;
- }
- }
-Index: /icu/branches/maint/maint-3-8/source/common/uvectr32.h
-===================================================================
---- common/uvectr32.h (revision 19000)
-+++ common/uvectr32.h (revision 23292)
-@@ -1,5 +1,5 @@
- /*
- **********************************************************************
--* Copyright (C) 1999-2006, International Business Machines
-+* Copyright (C) 1999-2008, International Business Machines
- * Corporation and others. All Rights Reserved.
- **********************************************************************
-@@ -62,4 +62,6 @@
-
- int32_t capacity;
-+
-+ int32_t maxCapacity; // Limit beyond which capacity is not permitted to grow.
-
- int32_t* elements;
-@@ -161,4 +163,12 @@
- */
- int32_t *getBuffer() const;
-+
-+ /**
-+ * Set the maximum allowed buffer capacity for this vector/stack.
-+ * Default with no limit set is unlimited, go until malloc() fails.
-+ * A Limit of zero means unlimited capacity.
-+ * Units are vector elements (32 bits each), not bytes.
-+ */
-+ void setMaxCapacity(int32_t limit);
-
- /**
-@@ -222,5 +232,7 @@
-
- inline int32_t *UVector32::reserveBlock(int32_t size, UErrorCode &status) {
-- ensureCapacity(count+size, status);
-+ if (ensureCapacity(count+size, status) == FALSE) {
-+ return NULL;
-+ }
- int32_t *rp = elements+count;
- count += size;
-
diff --git a/dev-libs/icu/files/icu-3.8-setBreakType-public.diff b/dev-libs/icu/files/icu-3.8-setBreakType-public.diff
deleted file mode 100644
index 3320b92282bc..000000000000
--- a/dev-libs/icu/files/icu-3.8-setBreakType-public.diff
+++ /dev/null
@@ -1,24 +0,0 @@
-This patch makes setBreakType public (needed for OO.org),
-pending a better upstream solution in 4.0. For details, see:
-http://qa.openoffice.org/issues/show_bug.cgi?id=83146
-http://bugs.icu-project.org/trac/ticket/5498
-http://bugs.gentoo.org/show_bug.cgi?id=200010
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=448745
-diff -Nau common/unicode.rbbi.h.orig common/unicode/rbbi.h
---- common/unicode/rbbi.h.orig 2007-10-31 15:52:08.000000000 +0100
-+++ common/unicode/rbbi.h 2007-10-31 15:52:47.000000000 +0100
-@@ -611,12 +611,14 @@
- virtual int32_t getBreakType() const;
- #endif
-
-+public:
- /**
- * Set the type of the break iterator.
- * @internal
- */
- virtual void setBreakType(int32_t type);
-
-+protected:
- /**
- * Common initialization function, used by constructors and bufferClone.
- * (Also used by DictionaryBasedBreakIterator::createBufferClone().)
diff --git a/dev-libs/icu/icu-3.6-r2.ebuild b/dev-libs/icu/icu-3.6-r2.ebuild
deleted file mode 100644
index 2872eede2d77..000000000000
--- a/dev-libs/icu/icu-3.6-r2.ebuild
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2008 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-3.6-r2.ebuild,v 1.8 2008/12/07 12:06:07 vapier Exp $
-
-inherit eutils
-
-DESCRIPTION="IBM Internationalization Components for Unicode"
-HOMEPAGE="http://ibm.com/software/globalization/icu/"
-SRC_URI="ftp://ftp.software.ibm.com/software/globalization/icu/${PV}/icu4c-${PV/./_}-src.tgz"
-
-LICENSE="as-is"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="debug"
-
-DEPEND=""
-RDEPEND=""
-
-S=${WORKDIR}/${PN}/source
-
-src_unpack() {
- unpack ${A}
- # Bug 208001
- epatch "${FILESDIR}"/${PN}-3.6-regexp-CVE-2007-4770+4771.diff
-}
-
-src_compile() {
- econf --enable-static $(use_enable debug) || die "econf failed"
- emake -j1 || die "emake failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "emake install failed"
- dohtml ../readme.html ../license.html
-}
diff --git a/dev-libs/icu/icu-3.8.1-r1.ebuild b/dev-libs/icu/icu-3.8.1-r1.ebuild
deleted file mode 100644
index a6bba797b215..000000000000
--- a/dev-libs/icu/icu-3.8.1-r1.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-libs/icu/icu-3.8.1-r1.ebuild,v 1.8 2009/05/08 00:39:40 loki_val Exp $
-
-inherit eutils versionator
-
-DESCRIPTION="International Components for Unicode"
-HOMEPAGE="http://www.icu-project.org/ http://ibm.com/software/globalization/icu/"
-
-BASEURI="http://download.icu-project.org/files/${PN}4c/${PV}"
-DOCS_PV="$(get_version_component_range 1-2)"
-DOCS_BASEURI="http://download.icu-project.org/files/${PN}4c/${DOCS_PV}"
-DOCS_PV="${DOCS_PV/./_}"
-SRCPKG="${PN}4c-${PV//./_}-src.tgz"
-USERGUIDE="${PN}-${DOCS_PV}-userguide.zip"
-APIDOCS="${PN}4c-${DOCS_PV}-docs.zip"
-
-SRC_URI="${BASEURI}/${SRCPKG}
- doc? ( ${DOCS_BASEURI}/${USERGUIDE}
- ${DOCS_BASEURI}/${APIDOCS} )"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
-IUSE="debug doc examples"
-
-DEPEND="doc? ( app-arch/unzip )"
-RDEPEND=""
-
-S=${WORKDIR}/${PN}/source
-
-src_unpack() {
- unpack ${SRCPKG}
- if use doc ; then
- mkdir userguide
- pushd ./userguide > /dev/null
- unpack ${USERGUIDE}
- popd
-
- mkdir apidocs
- pushd ./apidocs > /dev/null
- unpack ${APIDOCS}
- popd
- fi
-
- # See http://qa.openoffice.org/issues/show_bug.cgi?id=83146
- # and http://bugs.icu-project.org/trac/ticket/5498 for details
- cd "${S}"
- epatch "${FILESDIR}"/${PN}-3.8-setBreakType-public.diff
-
- # Bug 208001
- epatch "${FILESDIR}"/${PN}-3.8-regexp-CVE-2007-4770+4771.diff
-
- # Bug 258377
- sed -i -e 's:^#elif$:#else:g' ${S}/layoutex/ParagraphLayout.cpp || die 'elif sed failed'
-
- # do not hardcode used CFLAGS, LDFLAGS etc. into icu-config
- # Bug 202059
- # http://bugs.icu-project.org/trac/ticket/6102
- for x in CFLAGS CXXFLAGS CPPFLAGS LDFLAGS ; do
- sed -i -e "/^${x} =.*/s:@${x}@::" config/Makefile.inc.in || die "sed failed"
- done
-}
-
-src_compile() {
- econf \
- --enable-static \
- $(use_enable debug) \
- $(use_enable examples samples)
-
- emake -j1 || die "emake failed"
-}
-
-src_install() {
- emake DESTDIR="${D}" install || die "emake install failed"
-
- dohtml ../readme.html
- dodoc ../unicode-license.txt
- if use doc ; then
- insinto /usr/share/doc/${PF}/html/userguide
- doins -r "${WORKDIR}"/userguide/*
-
- insinto /usr/share/doc/${PF}/html/apidocs
- doins -r "${WORKDIR}"/apidocs/*
- fi
-}