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);