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

Commit beda8613 authored by Derek Sollenberger's avatar Derek Sollenberger Committed by Android (Google) Code Review
Browse files

Merge "Ensure that unparcelling Region only reads the expected number of bytes" into mnc-dev

parents c8304e86 3082fe44
Loading
Loading
Loading
Loading
+8 −3
Original line number Original line Diff line number Diff line
@@ -206,15 +206,20 @@ static jstring Region_toString(JNIEnv* env, jobject clazz, jlong regionHandle) {


static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel)
static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel)
{
{
    if (parcel == NULL) {
    if (parcel == nullptr) {
        return NULL;
        return 0;
    }
    }


    android::Parcel* p = android::parcelForJavaObject(env, parcel);
    android::Parcel* p = android::parcelForJavaObject(env, parcel);


    SkRegion* region = new SkRegion;
    SkRegion* region = new SkRegion;
    size_t size = p->readInt32();
    size_t size = p->readInt32();
    region->readFromMemory(p->readInplace(size), size);
    size_t actualSize = region->readFromMemory(p->readInplace(size), size);

    if (size != actualSize) {
        delete region;
        return 0;
    }


    return reinterpret_cast<jlong>(region);
    return reinterpret_cast<jlong>(region);
}
}