summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Drop codepoints that are outside the Unicode range - DO NOT MERGEHEADreplicant-6.0-0004-rc1cm-13.0Seigo Nonaka2017-12-092-0/+17
| | | | | | | | | | | | | Bug: 62134807 Test: mmma cts/tests/tests/graphics && adb install -r $OUT/data/app/CtsGraphicsTestCases/CtsGraphicsTestCases.apk && adb shell am instrument -w -e class \ android.graphics.cts.TypefaceTest \ android.graphics.cts/android.support.test.runner.AndroidJUnitRunner Change-Id: Ic780357bde28e233a15709b5fe07cdb3c532f471 (cherry picked from commit 0e441db0f7d36480fcabbacb9f443223063956a0) CVE-2017-0870
* Reject unsorted cmap entries. DO NOT MERGEreplicant-6.0-0003Seigo Nonaka2017-09-141-6/+24
| | | | | | | | | | | | | | addRange assumes the passing ranges are sorted in ascending order which is a part of OpenType spec, but bad fonts can pass arbitrary ranges. Now, addRange rejects invalid input and stop using such bad fonts. Bug: 32178311 Test: minikin_tests Test: bit CtsGraphicsTestCases:.TypefaceTest Change-Id: Ice845a1206e1c9da08ea20c7b56fde2e6ec8b673 (cherry picked from commit 0c943b002dfed4c19196a4d162737057f8ed5a56) (cherry picked from commit dbe6bb0c2b612889c2b1a3e37a77b93683c76e03) CVE-2017-0755
* Merge tag 'android-6.0.1_r30' into HEADreplicant-6.0-0002replicant-6.0-0001stable/cm-13.0-ZNH5YJessica Wagantall2016-04-180-0/+0
|\ | | | | | | | | Ticket: RM-234 Android 6.0.1 release 30
| * Add error logging on invalid cmapRaph Levien2016-02-271-0/+3
| | | | | | | | | | | | | | | | This patch logs instances of fonts with invalid cmap tables. Bug: 25645298 Bug: 26413177 Change-Id: I183985e9784a97a2b4307a22e036382b1fc90e5e
| * Reject fonts with invalid ranges in cmapRaph Levien2016-02-272-16/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | A corrupt or malicious font may have a negative size in its cmap range, which in turn could lead to memory corruption. This patch detects the case and rejects the font, and also includes an assertion in the sparse bit set implementation if we missed any such case. External issue: https://code.google.com/p/android/issues/detail?id=192618 Bug: 26413177 Change-Id: Icc0c80e4ef389abba0964495b89aa0fae3e9f4b2
* | Merge tag 'android-6.0.1_r24' into HEADJessica Wagantall2016-04-051-0/+3
|\ \ | | | | | | | | | | | | Ticket: CYNGNOS-2213 Android 6.0.1 release 24
| * \ merge in mnc-dr1.5-release history after reset to mnc-dr1.5-devThe Android Automerger2016-03-220-0/+0
| |\ \
| | * \ merge in mnc-dr1.5-release history after reset to mnc-dr1.5-devThe Android Automerger2016-03-180-0/+0
| | |\ \ | | |/ / | |/| |
| * | | Add error logging on invalid cmapRaph Levien2016-03-011-0/+3
| |/ / | | | | | | | | | | | | | | | | | | | | | This patch logs instances of fonts with invalid cmap tables. Bug: 25645298 Bug: 26413177 Change-Id: I183985e9784a97a2b4307a22e036382b1fc90e5e
* | | Merge tag 'android-6.0.1_r22' of ↵staging/cm-13.0+r22Steve Kondik2016-03-113-16/+53
|\ \ \ | |/ / | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/minikin into cm-13.0 Android 6.0.1 release 22
| * | Reject fonts with invalid ranges in cmap am: ca8ac8acda am: 3034e8b4ab am: ↵Raph Levien2016-01-152-16/+27
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a3df6da30b am: e82552ae00 am: 545b36d667 am: 98dd15e2cd * commit '98dd15e2cde1eb1835753c9af66d630779c18bc0': Reject fonts with invalid ranges in cmap
| | * \ Reject fonts with invalid ranges in cmap am: ca8ac8acda am: 3034e8b4ab am: ↵Raph Levien2016-01-152-16/+27
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a3df6da30b am: e82552ae00 am: 545b36d667 * commit '545b36d667c5b13c1b397b4c5ece20f097bf1f8b': Reject fonts with invalid ranges in cmap
| | | * \ Reject fonts with invalid ranges in cmap am: ca8ac8acda am: 3034e8b4ab am: ↵Raph Levien2016-01-152-16/+27
| | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a3df6da30b am: e82552ae00 * commit 'e82552ae0094efdb1b1b40ebfc832540eeb1234b': Reject fonts with invalid ranges in cmap
| | | | * \ Reject fonts with invalid ranges in cmap am: ca8ac8acda am: 3034e8b4abRaph Levien2016-01-152-16/+27
| | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: a3df6da30b * commit 'a3df6da30bdfda0b5b188e6511deeffddeeb9409': Reject fonts with invalid ranges in cmap
| | | | | * \ Reject fonts with invalid ranges in cmap am: ca8ac8acdaRaph Levien2016-01-152-16/+27
| | | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: 3034e8b4ab * commit '3034e8b4ab627278b88faae2f4813562f31a7c2b': Reject fonts with invalid ranges in cmap
| | | | | | * \ Reject fonts with invalid ranges in cmapRaph Levien2016-01-152-16/+27
| | | | | | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: ca8ac8acda * commit 'ca8ac8acdad662230ae37998c6c4091bb39402b6': Reject fonts with invalid ranges in cmap
| | | | | | | * | Reject fonts with invalid ranges in cmapRaph Levien2016-01-072-16/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A corrupt or malicious font may have a negative size in its cmap range, which in turn could lead to memory corruption. This patch detects the case and rejects the font, and also includes an assertion in the sparse bit set implementation if we missed any such case. External issue: https://code.google.com/p/android/issues/detail?id=192618 Bug: 26413177 Change-Id: Icc0c80e4ef389abba0964495b89aa0fae3e9f4b2
| * | | | | | | | Tailor grapheme boundaries so sequence emoji are one grapheme - DO NOT MERGERaph Levien2016-01-131-0/+26
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make it so it's not possible to position the cursor inside an emoji formed by a sequence including zero-width joiners. Bug: 25368653 Change-Id: I67ec0874cd1505f3c82ab91492ffc3d39a52fae6
| * | | | | | | Avoid integer overflows in parsing fonts am: 6299a6ba13 am: 998293f985 am: ↵Raph Levien2015-12-081-3/+6
| |\ \ \ \ \ \ \ | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ffadd191a0 am: d56908571d am: 7aec64b909 * commit '7aec64b9099d0b5bbbe766a2c29b9f09f0939a4c': Avoid integer overflows in parsing fonts
| | * | | | | | Avoid integer overflows in parsing fonts am: 6299a6ba13 am: 998293f985 am: ↵Raph Levien2015-12-081-3/+6
| | |\ \ \ \ \ \ | | | |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ffadd191a0 am: d56908571d * commit 'd56908571d3dc28686a198484d1cc8a399276d86': Avoid integer overflows in parsing fonts
| | | * | | | | Avoid integer overflows in parsing fonts am: 6299a6ba13 am: 998293f985Raph Levien2015-12-081-3/+6
| | | |\ \ \ \ \ | | | | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: ffadd191a0 * commit 'ffadd191a041f16c52b693d8dc0c42b3b9f01b2b': Avoid integer overflows in parsing fonts
| | | | * | | | Avoid integer overflows in parsing fonts am: 6299a6ba13Raph Levien2015-12-081-3/+6
| | | | |\ \ \ \ | | | | | |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: 998293f985 * commit '998293f985dc6c23f90b160f3bc647807c76d3fe': Avoid integer overflows in parsing fonts
| | | | | * | | Avoid integer overflows in parsing fontsRaph Levien2015-12-081-3/+6
| | | | | |\ \ \ | | | | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | am: 6299a6ba13 * commit '6299a6ba13906c695f7a4f6748f7bc5856a110e5': Avoid integer overflows in parsing fonts
| | | | | | * | Avoid integer overflows in parsing fontsRaph Levien2015-12-071-3/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A malformed TTF can cause size calculations to overflow. This patch checks the maximum reasonable value so that the total size fits in 32 bits. It also adds some explicit casting to avoid possible technical undefined behavior when parsing sized unsigned values. Bug: 25645298 Change-Id: Id4716132041a6f4f1fbb73ec4e445391cf7d9616 (cherry picked from commit 183c9ec2800baa2ce099ee260c6cbc6121cf1274)
| * | | | | | | Suppress linebreaks in emoji ZWJ sequences - DO NOT MERGERaph Levien2015-11-031-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the way emoji ZWJ sequences are defined, the ICU line breaking algorithm determines that there are valid line breaks inside the sequence. This patch suppresses these line breaks. Bug: 25433289 Change-Id: I225ebebc0f4186e4b8f48fee399c4a62b3f0218a
| * | | | | | | Accept variation selector in emoji sequences - DO NOT MERGERaph Levien2015-10-291-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch basically ignores variation selectors for the purpose of itemization into font runs. This allows GSUB to be applied when input sequences contain variation selectors. Bug: 25368653 Change-Id: I9c1d325ae0cd322c21b7e850d0ec4d73551b2372
* | | | | | | | Merge tag 'android-6.0.1_r13' into 13.0Jessica Wagantall2016-02-021-3/+6
|\ \ \ \ \ \ \ \ | | |_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Android 6.0.1 release 13 Ticket: CYNGNOS-1522 Change-Id: Ideb7565eb60e7d473884eec8f928142822338fdd
| * | | | | | | merge in mnc-mr1-release history after reset to mnc-dr-devThe Android Automerger2015-12-170-0/+0
| |\ \ \ \ \ \ \
* | \ \ \ \ \ \ \ Merge tag 'android-6.0.1_r10' into HEADJessica Wagantall2016-01-050-0/+0
|\ \ \ \ \ \ \ \ \ | | |/ / / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | Ticket: CYNGNOS-1404 Android 6.0.1 release 10
| * | | | | | | | merge in mnc-mr1-release history after reset to mnc-dr-devThe Android Automerger2015-12-150-0/+0
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | Avoid integer overflows in parsing fontsRaph Levien2015-12-111-3/+6
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A malformed TTF can cause size calculations to overflow. This patch checks the maximum reasonable value so that the total size fits in 32 bits. It also adds some explicit casting to avoid possible technical undefined behavior when parsing sized unsigned values. Bug: 25645298 Change-Id: Id4716132041a6f4f1fbb73ec4e445391cf7d9616 (cherry picked from commit 183c9ec2800baa2ce099ee260c6cbc6121cf1274)
* | | | | | | | Merge tag 'android-6.0.1_r3' of ↵Steve Kondik2015-12-089-118/+1075
|\ \ \ \ \ \ \ \ | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://android.googlesource.com/platform/frameworks/minikin into HEAD Android 6.0.1 release 3
| * | | | | | | Suppress linebreaks in emoji ZWJ sequences - DO NOT MERGERaph Levien2015-11-031-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Due to the way emoji ZWJ sequences are defined, the ICU line breaking algorithm determines that there are valid line breaks inside the sequence. This patch suppresses these line breaks. Bug: 25433289 Change-Id: I225ebebc0f4186e4b8f48fee399c4a62b3f0218a
| * | | | | | | Accept variation selector in emoji sequences - DO NOT MERGERaph Levien2015-10-301-2/+8
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch basically ignores variation selectors for the purpose of itemization into font runs. This allows GSUB to be applied when input sequences contain variation selectors. Bug: 25368653 Change-Id: I9c1d325ae0cd322c21b7e850d0ec4d73551b2372
| * | | | | | Complete half-done cherry-picking of Android.mk. DO NOT MERGERoozbeh Pournader2015-10-151-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous commit, 6e2cccdc518f8d3424c84ae6fbe0e87ae3c3f66a, was incompletely cherry-picked. This adds the missing parts. Bug: 24570591 Change-Id: I1097c60587fb8a88cfe6b8ffed5b1689d9bdd429
| * | | | | | Explicitly set utf-8 encoding for hyb file verificationRaph Levien2015-10-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Not all platforms default to UTF-8 encoding, so we set it explicitly. This patch should fix build breakages resulting from failed verification of binary hyb files for hyphenation patterns. Bug: 24570591 Change-Id: I65ac4536d3436586c2633e2b57554fc6ff16d3a8 (cherry picked from commit 138b93f094584212dd6978a1822d078f93574022)
| * | | | | | Binary format for hyphenation patternsRaph Levien2015-10-147-109/+1027
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the current state, hyphenation in all languages than Sanskrit seems to work (case-folding edge cases). Thus, we just disable Sanskrit. Packed tries are implemented, but not the finite state machine (space/speed tradeoff). This commit contains a throw-away test app, which runs on the host. I think I want to replace it with unit tests, but I'm including it in the CL because it's useful during development. Bug: 21562869 Bug: 21826930 Bug: 23317038 Bug: 23317904 Bug: 24570591 Change-Id: I7479a565a4a062fa319651c2c14c0fa18c5ceaea (cherry picked from commit f0be43de02a1e07308d3d95408349c3c7f973430)
* | | | | | Merge tag 'android-6.0.0_r26' into cm-13.0Ricardo Cerqueira2015-11-050-0/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Android 6.0.0 release 26
| * \ \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-300-0/+0
| |\ \ \ \ \ \ | | |/ / / / / | |/| | | | |
| | * | | | | merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-220-0/+0
| | |\ \ \ \ \
| | | * \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-210-0/+0
| | | |\ \ \ \ \
| | | | * \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-160-0/+0
| | | | |\ \ \ \ \
| | | | | * \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-150-0/+0
| | | | | |\ \ \ \ \
| | | | | | * \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-110-0/+0
| | | | | | |\ \ \ \ \
| | | | | | | * \ \ \ \ merge in mnc-dr-release history after reset to mnc-dr-devThe Android Automerger2015-07-060-0/+0
| | | | | | | |\ \ \ \ \
* | | | | | | | \ \ \ \ \ merge in mnc-release history after reset to mnc-devThe Android Automerger2015-07-300-0/+0
|\ \ \ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / / / |/| | | | | | | | | | | |
| * | | | | | | | | | | | merge in mnc-release history after reset to mnc-devThe Android Automerger2015-07-220-0/+0
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / / / | |/| | | | | | | | | | |
| | * | | | | | | | | | | merge in mnc-release history after reset to mnc-devThe Android Automerger2015-07-210-0/+0
| | |\ \ \ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / / / | | |/| | | | | | | | | |
| | | * | | | | | | | | | merge in mnc-release history after reset to mnc-devThe Android Automerger2015-07-160-0/+0
| | | |\ \ \ \ \ \ \ \ \ \ | | | | |/ / / / / / / / / | | | |/| | | | | | | | |
| | | | * | | | | | | | | merge in mnc-release history after reset to mnc-devThe Android Automerger2015-07-150-0/+0
| | | | |\ \ \ \ \ \ \ \ \ | | | | | |/ / / / / / / / | | | | |/| | | | | | | |