diff options
Diffstat (limited to 'libs/input/KeyCharacterMap.cpp')
-rw-r--r-- | libs/input/KeyCharacterMap.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libs/input/KeyCharacterMap.cpp b/libs/input/KeyCharacterMap.cpp index dd01a934ba..fe649fb548 100644 --- a/libs/input/KeyCharacterMap.cpp +++ b/libs/input/KeyCharacterMap.cpp @@ -607,6 +607,10 @@ sp<KeyCharacterMap> KeyCharacterMap::readFromParcel(Parcel* parcel) { if (parcel->errorCheck()) { return NULL; } + if (numKeys > MAX_KEYS) { + ALOGE("Too many keys in KeyCharacterMap (%d > %d)", numKeys, MAX_KEYS); + return NULL; + } for (size_t i = 0; i < numKeys; i++) { int32_t keyCode = parcel->readInt32(); |