summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Oscar Azucena <oscarazu@google.com> 2023-08-04 16:47:05 -0700
committer Oscar Azucena <oscarazu@google.com> 2023-08-04 17:15:56 -0700
commit4cc23a4a0fa5f8dae680ff9605ab017f8c68398d (patch)
treea0df291cdc7ab5019903238aa54cc843ff8d247f
parent6a67ea5e7dee8df1094344d976cca25e0bb4e7a3 (diff)
Fixed memory issue for audio mix info callback
On the native side the callback had the incorrect address of the memory to release thus leading to a crash. Bug: 293643676 Test: m -j, run audio service with register audio policy Change-Id: Ia33115e4e9b7d116f9bd2d8f036558d95ab7dd8d
-rw-r--r--core/jni/android_media_AudioSystem.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/core/jni/android_media_AudioSystem.cpp b/core/jni/android_media_AudioSystem.cpp
index 4cf17b78f489..199854818989 100644
--- a/core/jni/android_media_AudioSystem.cpp
+++ b/core/jni/android_media_AudioSystem.cpp
@@ -523,13 +523,14 @@ android_media_AudioSystem_dyn_policy_callback(int event, String8 regId, int val)
}
jclass clazz = env->FindClass(kClassPathName);
- const char* zechars = regId.string();
- jstring zestring = env->NewStringUTF(zechars);
+ const char *regIdString = regId.string();
+ jstring regIdJString = env->NewStringUTF(regIdString);
env->CallStaticVoidMethod(clazz, gAudioPolicyEventHandlerMethods.postDynPolicyEventFromNative,
- event, zestring, val);
+ event, regIdJString, val);
- env->ReleaseStringUTFChars(zestring, zechars);
+ const char *regIdJChars = env->GetStringUTFChars(regIdJString, NULL);
+ env->ReleaseStringUTFChars(regIdJString, regIdJChars);
env->DeleteLocalRef(clazz);
}