summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaph Levien <raph@google.com>2016-02-11 11:17:44 -0800
committerThe Android Automerger <android-build@google.com>2016-02-26 14:33:57 -0800
commitf4785aa1947b8d22d5b19559ef1ca526d98e0e73 (patch)
tree8ebbef3dc99cc3360f0ac74bccfcf9a077efc286
parent2a389cd3a5f8f5dc787218644f64e101a90a6a6f (diff)
downloadandroid_frameworks_minikin-f4785aa1947b8d22d5b19559ef1ca526d98e0e73.tar.gz
android_frameworks_minikin-f4785aa1947b8d22d5b19559ef1ca526d98e0e73.tar.bz2
android_frameworks_minikin-f4785aa1947b8d22d5b19559ef1ca526d98e0e73.zip
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
-rw-r--r--libs/minikin/CmapCoverage.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/libs/minikin/CmapCoverage.cpp b/libs/minikin/CmapCoverage.cpp
index 9f3447e..82fae30 100644
--- a/libs/minikin/CmapCoverage.cpp
+++ b/libs/minikin/CmapCoverage.cpp
@@ -19,6 +19,9 @@
#define LOG_TAG "Minikin"
#include <cutils/log.h>
+#define LOG_TAG "Minikin"
+#include <cutils/log.h>
+
#include <vector>
using std::vector;
@@ -67,6 +70,7 @@ static bool getCoverageFormat4(vector<uint32_t>& 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<uint32_t>& 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<uint32_t>& 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