media: release allocated strings on error

Bug: 11990470
Change-Id: I74ffbfed8eb322d1b994fff99ed2470358bccf83
diff --git a/media/jni/android_media_MediaCodecList.cpp b/media/jni/android_media_MediaCodecList.cpp
index ecba02a..12eb7d2 100644
--- a/media/jni/android_media_MediaCodecList.cpp
+++ b/media/jni/android_media_MediaCodecList.cpp
@@ -85,6 +85,7 @@
     sp<IMediaCodecList> mcl = getCodecList(env);
     if (mcl == NULL) {
         // Runtime exception already pending.
+        env->ReleaseStringUTFChars(name, nameStr);
         return -ENOENT;
     }
 
@@ -162,7 +163,6 @@
     }
 
     const char *typeStr = env->GetStringUTFChars(type, NULL);
-
     if (typeStr == NULL) {
         // Out of memory exception already pending.
         return NULL;
@@ -177,12 +177,12 @@
     // TODO query default-format also from codec/codec list
     const sp<MediaCodecInfo::Capabilities> &capabilities =
         info->getCapabilitiesFor(typeStr);
+    env->ReleaseStringUTFChars(type, typeStr);
+    typeStr = NULL;
     if (capabilities == NULL) {
         jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
         return NULL;
     }
-    env->ReleaseStringUTFChars(type, typeStr);
-    typeStr = NULL;
 
     capabilities->getSupportedColorFormats(&colorFormats);
     capabilities->getSupportedProfileLevels(&profileLevels);