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

Commit 969ac0b2 authored by Jeff Tinker's avatar Jeff Tinker Committed by Gerrit Code Review
Browse files

Merge "Revert "Fix Crash when sending null in HashMap to getKeyRequest""

parents 2ece10db 2888e907
Loading
Loading
Loading
Loading
+4 −14
Original line number Diff line number Diff line
@@ -438,7 +438,7 @@ static String8 JStringToString8(JNIEnv *env, jstring const &jstr) {
    Entry e = s.next();
*/

static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject &hashMap, bool *pIsOK) {
static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject &hashMap) {
    jclass clazz = gFields.stringClassId;
    KeyedVector<String8, String8> keyedVector;

@@ -451,22 +451,16 @@ static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject &
                jobject entry = env->CallObjectMethod(iterator, gFields.iterator.next);
                if (entry) {
                    jobject obj = env->CallObjectMethod(entry, gFields.entry.getKey);
                    if (obj == NULL || !env->IsInstanceOf(obj, clazz)) {
                    if (!env->IsInstanceOf(obj, clazz)) {
                        jniThrowException(env, "java/lang/IllegalArgumentException",
                                          "HashMap key is not a String");
                        env->DeleteLocalRef(entry);
                        *pIsOK = false;
                        break;
                    }
                    jstring jkey = static_cast<jstring>(obj);

                    obj = env->CallObjectMethod(entry, gFields.entry.getValue);
                    if (obj == NULL || !env->IsInstanceOf(obj, clazz)) {
                    if (!env->IsInstanceOf(obj, clazz)) {
                        jniThrowException(env, "java/lang/IllegalArgumentException",
                                          "HashMap value is not a String");
                        env->DeleteLocalRef(entry);
                        *pIsOK = false;
                        break;
                    }
                    jstring jvalue = static_cast<jstring>(obj);

@@ -769,11 +763,7 @@ static jobject android_media_MediaDrm_getKeyRequest(

    KeyedVector<String8, String8> optParams;
    if (joptParams != NULL) {
        bool isOK = true;
        optParams = HashMapToKeyedVector(env, joptParams, &isOK);
        if (!isOK) {
            return NULL;
        }
        optParams = HashMapToKeyedVector(env, joptParams);
    }

    Vector<uint8_t> request;