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

Commit 1eb61008 authored by Adam Lesinski's avatar Adam Lesinski Committed by Android Git Automerger
Browse files

am ca5fb0dc: am c6240e72: Fix large memory corruption in AAPT

* commit 'ca5fb0dccde2b2552f1374957b3a2a170ef39238':
  Fix large memory corruption in AAPT
parents 9c3a0cb1 23e6d3a2
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -3846,24 +3846,32 @@ sp<ResourceTable::Type> ResourceTable::Package::getType(const String16& type,

status_t ResourceTable::Package::setTypeStrings(const sp<AaptFile>& data)
{
    mTypeStringsData = data;
    status_t err = setStrings(data, &mTypeStrings, &mTypeStringsMapping);
    if (err != NO_ERROR) {
        fprintf(stderr, "ERROR: Type string data is corrupt!\n");
    }
        return err;
    }

    // Retain a reference to the new data after we've successfully replaced
    // all uses of the old reference (in setStrings() ).
    mTypeStringsData = data;
    return NO_ERROR;
}

status_t ResourceTable::Package::setKeyStrings(const sp<AaptFile>& data)
{
    mKeyStringsData = data;
    status_t err = setStrings(data, &mKeyStrings, &mKeyStringsMapping);
    if (err != NO_ERROR) {
        fprintf(stderr, "ERROR: Key string data is corrupt!\n");
    }
        return err;
    }

    // Retain a reference to the new data after we've successfully replaced
    // all uses of the old reference (in setStrings() ).
    mKeyStringsData = data;
    return NO_ERROR;
}

status_t ResourceTable::Package::setStrings(const sp<AaptFile>& data,
                                            ResStringPool* strings,
                                            DefaultKeyedVector<String16, uint32_t>* mappings)