diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2014-10-28 14:33:46 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2014-10-28 14:33:46 +0100 |
commit | 3025a28bc2e89af05c9d287a07223be0447d3c2f (patch) | |
tree | 74e387b4848eabc48919398b386df94b87b874b8 /external | |
parent | 1b1c11f51914448d1ebc0fe18abf2b325f8c4791 (diff) |
external/icu: More workaround UBSan flexible array member detection
Change-Id: Ie83e3104bd639be42ac0c6e25fc2eafd88cf0c6f
Diffstat (limited to 'external')
-rw-r--r-- | external/icu/icu-ubsan.patch.0 | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/external/icu/icu-ubsan.patch.0 b/external/icu/icu-ubsan.patch.0 index 5f9e85f502eb..7268bb7ab06b 100644 --- a/external/icu/icu-ubsan.patch.0 +++ b/external/icu/icu-ubsan.patch.0 @@ -9,9 +9,24 @@ /* This array does not have two elements */ /* Array Size is actually fData->fHeader->fCatCount */ /* CAUTION: see RBBITableBuilder::getTableSize() */ +@@ -126,7 +126,7 @@ + uint32_t fRowLen; /* Length of a state table row, in bytes. */ + uint32_t fFlags; /* Option Flags for this state table */ + uint32_t fReserved; /* reserved */ +- char fTableData[4]; /* First RBBIStateTableRow begins here. */ ++ char fTableData[1]; /* First RBBIStateTableRow begins here. */ + /* (making it char[] simplifies ugly address */ + /* arithmetic for indexing variable length rows.) */ + }; --- source/common/rbbitblb.cpp +++ source/common/rbbitblb.cpp -@@ -1072,10 +1072,10 @@ +@@ -1067,15 +1067,15 @@ + return 0; + } + +- size = sizeof(RBBIStateTable) - 4; // The header, with no rows to the table. ++ size = offsetof(RBBIStateTable, fTableData); // The header, with no rows to the table. + numRows = fDStates->size(); numCols = fRB->fSetBuilder->getNumCharCategories(); |