From e8650320c55869b8ab7430be5aabca3f0c77fe38 Mon Sep 17 00:00:00 2001 From: Hridya Valsaraju Date: Mon, 5 Dec 2016 20:23:21 -0800 Subject: [PATCH] Fix bug in GnssLocationProvider. Perform nullptr checking correctly before calling setCallback() on gnssXtraIface. Bug: 33334137 Test: Checked no crash happens when GNSS HAL returns a null GnssXtraInfc. Change-Id: I763d96443a0a6c0f036ecfc86ac442b297560efa --- ..._android_server_location_GnssLocationProvider.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp index b0a4297da86e5..7db6d42132afc 100644 --- a/services/core/jni/com_android_server_location_GnssLocationProvider.cpp +++ b/services/core/jni/com_android_server_location_GnssLocationProvider.cpp @@ -1009,12 +1009,12 @@ static jboolean android_location_GnssLocationProvider_init(JNIEnv* env, jobject sp gnssXtraCbIface = new GnssXtraCallback(); if (gnssXtraIface == nullptr) { ALOGE("Unable to initialize GNSS Xtra interface\n"); - } - - result = gnssXtraIface->setCallback(gnssXtraCbIface); - if ((!result) || (!result.getStatus().isOk())) { - gnssXtraIface = nullptr; - ALOGE("SetCallback for Gnss Xtra Interface fails\n"); + } else { + result = gnssXtraIface->setCallback(gnssXtraCbIface); + if ((!result) || (!result.getStatus().isOk())) { + gnssXtraIface = nullptr; + ALOGE("SetCallback for Gnss Xtra Interface fails\n"); + } } sp aGnssCbIface = new AGnssCallback();