Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06dbe50a authored by Kenny Root's avatar Kenny Root
Browse files

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
parent e739a525
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -412,10 +412,18 @@ void ZipFileRO::addToHash(const char* str, int strLen, unsigned int hash)
/*
 * Find a matching entry.
 *
 * Returns 0 if not found.
 * Returns NULL if not found.
 */
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);
    unsigned int hash = computeHash(fileName, nameLen);
    int ent = hash & (mHashTableSize-1);