summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorD. Andrei Măceș <dmaces@nd.edu>2017-10-07 18:07:00 +0300
committerD. Andrei Măceș <Andrei.Maces@alumni.nd.edu>2018-03-10 04:24:44 +0200
commite73eafff8695ab28201acbc03a362d5b177047aa (patch)
tree9b760ba27892bf8e2b3a30924b673b22083dd100
parent6a7540e9cae275d37e0398016476c60cb35c3173 (diff)
downloadandroid_hardware_ril-e73eafff8695ab28201acbc03a362d5b177047aa.tar.gz
android_hardware_ril-e73eafff8695ab28201acbc03a362d5b177047aa.tar.bz2
android_hardware_ril-e73eafff8695ab28201acbc03a362d5b177047aa.zip
libril: Protect against NULL unsolicited response functionlineage-15.1
Upstream change I732234a22328a1bfcb603bb020547f543b6fd766 makes RIL_UNSOL_DC_RT_INFO_CHANGED's responseFunction() NULL, without protecting against it in RIL_onUnsolicitedResponse(), thus crash- ing at least hammerhead's RIL stack upon mobile data connection. https://android-review.googlesource.com/#/c/platform/hardware/ril/+/345950/ Change-Id: I6567019cb6daf6492a29e04cc9872e69b2ba456d Signed-off-by: D. Andrei Măceș <Andrei.Maces@alumni.nd.edu>
-rw-r--r--libril/ril.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/libril/ril.cpp b/libril/ril.cpp
index 6d375ca..23595d9 100644
--- a/libril/ril.cpp
+++ b/libril/ril.cpp
@@ -778,9 +778,11 @@ void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
int rwlockRet = pthread_rwlock_rdlock(radioServiceRwlockPtr);
assert(rwlockRet == 0);
- ret = s_unsolResponses[unsolResponseIndex].responseFunction(
- (int) soc_id, responseType, 0, RIL_E_SUCCESS, const_cast<void*>(data),
- datalen);
+ if (s_unsolResponses[unsolResponseIndex].responseFunction) {
+ ret = s_unsolResponses[unsolResponseIndex].responseFunction(
+ (int) soc_id, responseType, 0, RIL_E_SUCCESS, const_cast<void*>(data),
+ datalen);
+ }
rwlockRet = pthread_rwlock_unlock(radioServiceRwlockPtr);
assert(rwlockRet == 0);