Open Source Telephony
 help / color / mirror / Atom feed
* [PATCH 1/2] network.c: notify_status_watches: check for NULL
@ 2017-09-11  0:25 Alexander Couzens
  2017-09-11  0:25 ` [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register() Alexander Couzens
  2017-09-11 15:39 ` [PATCH 1/2] network.c: notify_status_watches: check for NULL Denis Kenzior
  0 siblings, 2 replies; 4+ messages in thread
From: Alexander Couzens @ 2017-09-11  0:25 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 644 bytes --]

In rare cases when ofono_netreg_status_notify() is called before
ofono_netreg_register() netreg->status_watches is NULL.
---
 src/network.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/network.c b/src/network.c
index a3d41a74d555..6e69b078495f 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1186,6 +1186,9 @@ static void notify_status_watches(struct ofono_netreg *netreg)
 	const char *mcc = NULL;
 	const char *mnc = NULL;
 
+	if (netreg->status_watches == NULL)
+		return;
+
 	if (netreg->current_operator) {
 		mcc = netreg->current_operator->mcc;
 		mnc = netreg->current_operator->mnc;
-- 
2.14.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register()
  2017-09-11  0:25 [PATCH 1/2] network.c: notify_status_watches: check for NULL Alexander Couzens
@ 2017-09-11  0:25 ` Alexander Couzens
  2017-09-11 15:41   ` Denis Kenzior
  2017-09-11 15:39 ` [PATCH 1/2] network.c: notify_status_watches: check for NULL Denis Kenzior
  1 sibling, 1 reply; 4+ messages in thread
From: Alexander Couzens @ 2017-09-11  0:25 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 1525 bytes --]

When registering callbacks before ofono_netreg_register(), callbacks
will use the netreg api which might lead into undefined behaviour,
because certain fields aren't yet initilized.
---
 drivers/qmimodem/network-registration.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/qmimodem/network-registration.c b/drivers/qmimodem/network-registration.c
index c88e80bdf711..70ddea52df40 100644
--- a/drivers/qmimodem/network-registration.c
+++ b/drivers/qmimodem/network-registration.c
@@ -511,10 +511,17 @@ static void event_notify(struct qmi_result *result, void *user_data)
 static void set_event_cb(struct qmi_result *result, void *user_data)
 {
 	struct ofono_netreg *netreg = user_data;
+	struct netreg_data *data = ofono_netreg_get_data(netreg);
 
 	DBG("");
 
 	ofono_netreg_register(netreg);
+
+	qmi_service_register(data->nas, QMI_NAS_EVENT,
+					event_notify, netreg, NULL);
+
+	qmi_service_register(data->nas, QMI_NAS_SS_INFO_IND,
+					ss_info_notify, netreg, NULL);
 }
 
 static void create_nas_cb(struct qmi_service *service, void *user_data)
@@ -536,12 +543,6 @@ static void create_nas_cb(struct qmi_service *service, void *user_data)
 
 	data->nas = qmi_service_ref(service);
 
-	qmi_service_register(data->nas, QMI_NAS_EVENT,
-					event_notify, netreg, NULL);
-
-	qmi_service_register(data->nas, QMI_NAS_SS_INFO_IND,
-					ss_info_notify, netreg, NULL);
-
 	param = qmi_param_new();
 	if (!param)
 		goto done;
-- 
2.14.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] network.c: notify_status_watches: check for NULL
  2017-09-11  0:25 [PATCH 1/2] network.c: notify_status_watches: check for NULL Alexander Couzens
  2017-09-11  0:25 ` [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register() Alexander Couzens
@ 2017-09-11 15:39 ` Denis Kenzior
  1 sibling, 0 replies; 4+ messages in thread
From: Denis Kenzior @ 2017-09-11 15:39 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 311 bytes --]

Hi Alexander,

On 09/10/2017 07:25 PM, Alexander Couzens wrote:
> In rare cases when ofono_netreg_status_notify() is called before
> ofono_netreg_register() netreg->status_watches is NULL.
> ---
>   src/network.c | 3 +++
>   1 file changed, 3 insertions(+)
> 

Applied, thanks.

Regards,
-Denis


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register()
  2017-09-11  0:25 ` [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register() Alexander Couzens
@ 2017-09-11 15:41   ` Denis Kenzior
  0 siblings, 0 replies; 4+ messages in thread
From: Denis Kenzior @ 2017-09-11 15:41 UTC (permalink / raw)
  To: ofono

[-- Attachment #1: Type: text/plain, Size: 424 bytes --]

Hi Alexander,

On 09/10/2017 07:25 PM, Alexander Couzens wrote:
> When registering callbacks before ofono_netreg_register(), callbacks
> will use the netreg api which might lead into undefined behaviour,
> because certain fields aren't yet initilized.
> ---
>   drivers/qmimodem/network-registration.c | 13 +++++++------
>   1 file changed, 7 insertions(+), 6 deletions(-)

Applied, thanks.

Regards,
-Denis


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-09-11 15:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-11  0:25 [PATCH 1/2] network.c: notify_status_watches: check for NULL Alexander Couzens
2017-09-11  0:25 ` [PATCH 2/2] qmimodem/network-registration: register callbacks after ofono_netreg_register() Alexander Couzens
2017-09-11 15:41   ` Denis Kenzior
2017-09-11 15:39 ` [PATCH 1/2] network.c: notify_status_watches: check for NULL Denis Kenzior

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox