Fix order of operation issue with ResStringPool
Due to ! taking precedence over bitwise &, the condition for checking non-null terminated string blocks is incorrect. Adds parentheses for the correct behavior. Bug:28288210 Change-Id: Ie31fa239e5f869e6bb28deb6ae190f41f1aa4d92
This commit is contained in:
@@ -562,7 +562,7 @@ status_t ResStringPool::setTo(const void* data, size_t size, bool copyData)
|
||||
|
||||
if ((mHeader->flags&ResStringPool_header::UTF8_FLAG &&
|
||||
((uint8_t*)mStrings)[mStringPoolSize-1] != 0) ||
|
||||
(!mHeader->flags&ResStringPool_header::UTF8_FLAG &&
|
||||
(!(mHeader->flags&ResStringPool_header::UTF8_FLAG) &&
|
||||
((uint16_t*)mStrings)[mStringPoolSize-1] != 0)) {
|
||||
ALOGW("Bad string block: last string is not 0-terminated\n");
|
||||
return (mError=BAD_TYPE);
|
||||
|
||||
Reference in New Issue
Block a user