From 48e5307447bbdeb8c190211ec11801968cb0363e Mon Sep 17 00:00:00 2001 From: Raph Levien Date: Thu, 11 Feb 2016 11:17:44 -0800 Subject: [PATCH] Add error logging on invalid cmap - DO NOT MERGE This patch logs instances of fonts with invalid cmap tables. Bug: 25645298 Bug: 26413177 Change-Id: I183985e9784a97a2b4307a22e036382b1fc90e5e --- libs/minikin/CmapCoverage.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libs/minikin/CmapCoverage.cpp b/libs/minikin/CmapCoverage.cpp index 4c9643a1d4a..d77253b114f 100644 --- a/libs/minikin/CmapCoverage.cpp +++ b/libs/minikin/CmapCoverage.cpp @@ -20,6 +20,9 @@ #include #endif +#define LOG_TAG "Minikin" +#include + #include using std::vector; @@ -68,6 +71,7 @@ static bool getCoverageFormat4(vector& coverage, const uint8_t* data, uint32_t start = readU16(data, kHeaderSize + 2 * (segCount + i)); if (end < start) { // invalid segment range: size must be positive + android_errorWriteLog(0x534e4554, "26413177"); return false; } uint32_t rangeOffset = readU16(data, kHeaderSize + 2 * (3 * segCount + i)); @@ -113,6 +117,7 @@ static bool getCoverageFormat12(vector& coverage, const uint8_t* data, } uint32_t nGroups = readU32(data, kNGroupsOffset); if (nGroups >= kMaxNGroups || kFirstGroupOffset + nGroups * kGroupSize > size) { + android_errorWriteLog(0x534e4554, "25645298"); return false; } for (uint32_t i = 0; i < nGroups; i++) { @@ -121,6 +126,7 @@ static bool getCoverageFormat12(vector& coverage, const uint8_t* data, uint32_t end = readU32(data, groupOffset + kEndCharCodeOffset); if (end < start) { // invalid group range: size must be positive + android_errorWriteLog(0x534e4554, "26413177"); return false; } addRange(coverage, start, end + 1); // file is inclusive, vector is exclusive