Initialized check in ZipFileRO::findEntryByName
If a ZipFileRO object is uninitialized, the hash table will not have been initialized. This condition wasn't checked in findEntryByName. Bug: 3121109 Change-Id: Ib696e0e7e0cb4dd0fb2e456d6a847e5e8f4fe14e
This commit is contained in:
parent
e739a5257d
commit
06dbe50a1a
@ -412,10 +412,18 @@ void ZipFileRO::addToHash(const char* str, int strLen, unsigned int hash)
|
|||||||
/*
|
/*
|
||||||
* Find a matching entry.
|
* Find a matching entry.
|
||||||
*
|
*
|
||||||
* Returns 0 if not found.
|
* Returns NULL if not found.
|
||||||
*/
|
*/
|
||||||
ZipEntryRO ZipFileRO::findEntryByName(const char* fileName) const
|
ZipEntryRO ZipFileRO::findEntryByName(const char* fileName) const
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
* If the ZipFileRO instance is not initialized, the entry number will
|
||||||
|
* end up being garbage since mHashTableSize is -1.
|
||||||
|
*/
|
||||||
|
if (mHashTableSize <= 0) {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
int nameLen = strlen(fileName);
|
int nameLen = strlen(fileName);
|
||||||
unsigned int hash = computeHash(fileName, nameLen);
|
unsigned int hash = computeHash(fileName, nameLen);
|
||||||
int ent = hash & (mHashTableSize-1);
|
int ent = hash & (mHashTableSize-1);
|
||||||
|
Loading…
Reference in New Issue
Block a user