diff options
author | Denis Kenzior <denkenz@gmail.com> | 2010-01-13 11:40:15 -0600 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2010-01-13 11:40:15 -0600 |
commit | d9bb71e521de61bc8c2900ddd82e2bfcdd9cf97d (patch) | |
tree | ccd9298e0e2a47e0200472d24903f77a4491a1c8 /src/network.c | |
parent | 506eb11b02ba992c5da843eb5bb096936009b19f (diff) | |
download | ofono-d9bb71e521de61bc8c2900ddd82e2bfcdd9cf97d.tar.bz2 |
Fix: Don't try to unregister a null mcc/mnc
Network operators with null MCC & MNC are not registered, but we try to
unregister them. Don't do this as it causes a crash.
Diffstat (limited to 'src/network.c')
-rw-r--r-- | src/network.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/network.c b/src/network.c index 69959c5e..8b4eb09e 100644 --- a/src/network.c +++ b/src/network.c @@ -1607,8 +1607,14 @@ static void netreg_unregister(struct ofono_atom *atom) __ofono_watchlist_free(netreg->status_watches); netreg->status_watches = NULL; - for (l = netreg->operator_list; l; l = l->next) + for (l = netreg->operator_list; l; l = l->next) { + struct network_operator_data *opd = l->data; + + if (opd->mcc[0] == '\0' && opd->mnc[0] == '\0') + continue; + network_operator_dbus_unregister(netreg, l->data); + } g_slist_free(netreg->operator_list); netreg->operator_list = NULL; |