From df6813406c0dd22dca002de7994ae0ee2e3f126b Mon Sep 17 00:00:00 2001 From: Pawan Wagh Date: Mon, 30 Sep 2024 21:16:36 +0000 Subject: Add check for valid AIBinder_Class_setTransactionCodeToFunctionNameMap some APEX modules are running into null-deref when calling AIBinder_Class_setTransactionCodeToFunctionNameMap (artd). Adding a check for to validate function availability. Test: m CtsNdkBinderTestCases && atest -c CtsNdkBinderTestCases Bug: 370091328 Bug: 368303753 Change-Id: I147cca8448c72bbc19ba8cac3cee147f906c7cc4 --- libs/binder/ndk/include_cpp/android/binder_interface_utils.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libs/binder/ndk/include_cpp/android/binder_interface_utils.h b/libs/binder/ndk/include_cpp/android/binder_interface_utils.h index 9d68399145..0ad110ee83 100644 --- a/libs/binder/ndk/include_cpp/android/binder_interface_utils.h +++ b/libs/binder/ndk/include_cpp/android/binder_interface_utils.h @@ -299,7 +299,8 @@ AIBinder_Class* ICInterface::defineClass(const char* interfaceDescriptor, #if defined(__ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__) || __ANDROID_API__ >= 36 if API_LEVEL_AT_LEAST (36, 202504) { - if (codeToFunction != nullptr) { + if (codeToFunction != nullptr && + (&AIBinder_Class_setTransactionCodeToFunctionNameMap != nullptr)) { AIBinder_Class_setTransactionCodeToFunctionNameMap(clazz, codeToFunction, functionCount); } -- cgit v1.2.3-59-g8ed1b