From 3fb8c9b50ef1873454acf3a4e7fd33ad182c03d7 Mon Sep 17 00:00:00 2001 From: Adam Lesinski Date: Tue, 9 Sep 2014 16:05:10 -0700 Subject: AAPT: Don't crash on illegal symbol name We never checked the return value when adding a nested symbol, which would be NULL if the symbol name was invalid. External bug: https://code.google.com/p/android/issues/detail?id=75876 Change-Id: I5211f4d4b87897d52f2b6e5907113d31930bb92d --- tools/aapt/ResourceTable.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/aapt/ResourceTable.cpp b/tools/aapt/ResourceTable.cpp index b3c364be2451..8341de6c4ba5 100644 --- a/tools/aapt/ResourceTable.cpp +++ b/tools/aapt/ResourceTable.cpp @@ -2574,8 +2574,12 @@ status_t ResourceTable::addSymbols(const sp& outSymbols) { continue; } const size_t N = t->getOrderedConfigs().size(); - sp typeSymbols; - typeSymbols = outSymbols->addNestedSymbol(String8(t->getName()), t->getPos()); + sp typeSymbols = + outSymbols->addNestedSymbol(String8(t->getName()), t->getPos()); + if (typeSymbols == NULL) { + return UNKNOWN_ERROR; + } + for (size_t ci=0; ci c = t->getOrderedConfigs().itemAt(ci); if (c == NULL) { -- cgit v1.2.3-59-g8ed1b