From 9d9c284fbff28d9bf38191a4568af5def63a2b76 Mon Sep 17 00:00:00 2001 From: Ashwin Kumar Date: Wed, 20 Nov 2013 14:12:57 +0530 Subject: [PATCH] Added NULL check before function call Added NULL check before calling nmea call back function to prevent segmentation fault in case no nmea call back is registered. Change-Id: If2371f4522e12312630043c3953405f583829068 CRs-fixed: 578444 --- loc_api/libloc_api_50001/loc_eng.cpp | 4 +++- loc_api/libloc_api_50001/loc_eng_nmea.cpp | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/loc_api/libloc_api_50001/loc_eng.cpp b/loc_api/libloc_api_50001/loc_eng.cpp index 8079ada5..34c94ca7 100644 --- a/loc_api/libloc_api_50001/loc_eng.cpp +++ b/loc_api/libloc_api_50001/loc_eng.cpp @@ -857,7 +857,9 @@ void LocEngReportNmea::proc() const { gettimeofday(&tv, (struct timezone *) NULL); int64_t now = tv.tv_sec * 1000LL + tv.tv_usec / 1000; CALLBACK_LOG_CALLFLOW("nmea_cb", %d, mLen); - locEng->nmea_cb(now, mNmea, mLen); + + if (locEng->nmea_cb != NULL) + locEng->nmea_cb(now, mNmea, mLen); } inline void LocEngReportNmea::locallog() const { LOC_LOGV("LocEngReportNmea"); diff --git a/loc_api/libloc_api_50001/loc_eng_nmea.cpp b/loc_api/libloc_api_50001/loc_eng_nmea.cpp index eb7fd1dc..97ba4d58 100644 --- a/loc_api/libloc_api_50001/loc_eng_nmea.cpp +++ b/loc_api/libloc_api_50001/loc_eng_nmea.cpp @@ -60,7 +60,8 @@ void loc_eng_nmea_send(char *pNmea, int length, loc_eng_data_s_type *loc_eng_dat gettimeofday(&tv, (struct timezone *) NULL); int64_t now = tv.tv_sec * 1000LL + tv.tv_usec / 1000; CALLBACK_LOG_CALLFLOW("nmea_cb", %p, pNmea); - loc_eng_data_p->nmea_cb(now, pNmea, length); + if (loc_eng_data_p->nmea_cb != NULL) + loc_eng_data_p->nmea_cb(now, pNmea, length); LOC_LOGD("NMEA <%s", pNmea); }