From: Daniel Wagner <[email protected]>

dhcp->nameservers can be NULL. This can be triggered with toggling
fast the technologie.

#0  0x000000000045388a in dhcp_invalidate (dhcp=0x6a3d50, callback=0) at 
src/dhcp.c:99
#1  0x00000000004545b8 in remove_network (user_data=0x6a3d50) at src/dhcp.c:434
#2  0x00000031078312c9 in g_hash_table_insert_internal (hash_table=0x6a2e80 = 
{...}, key=
    0x69d6e0, value=0x69d310, keep_new_key=1) at ghash.c:1000
#3  0x000000000045465a in __connman_dhcp_start (network=0x69d6e0, callback=
    0x435c7e <dhcp_callback>) at src/dhcp.c:453
#4  0x0000000000435ee2 in set_connected_dhcp (network=0x69d6e0) at 
src/network.c:787
#5  0x00000000004361f6 in set_connected (user_data=0x69d6e0) at 
src/network.c:902
#6  0x00000000004363a7 in connman_network_set_connected (network=0x69d6e0, 
connected=1)
    at src/network.c:972
#7  0x000000000041aff2 in add_network (device=0x69ac10) at 
plugins/ethernet.c:109
#8  0x000000000041b137 in ethernet_newlink (flags=69699, change=0, 
user_data=0x69ac10)
    at plugins/ethernet.c:132
#9  0x00000000004554d7 in process_newlink (type=1, index=2, flags=69699, 
change=0, msg=
    0x7fffffffd330, bytes=488) at src/rtnl.c:484
#10 0x0000000000456659 in rtnl_newlink (hdr=0x7fffffffd320) at src/rtnl.c:932
#11 0x000000000045752f in rtnl_message (buf=0x7fffffffd320, len=512) at 
src/rtnl.c:1372
#12 0x0000000000457670 in netlink_event (chan=0x6a27e0, cond=G_IO_IN, data=0x0)
    at src/rtnl.c:1423
#13 0x0000003107841e33 in g_main_dispatch (context=0x6980e0) at gmain.c:2149
#14 g_main_context_dispatch (context=0x6980e0) at gmain.c:2702
#15 0x0000003107842610 in g_main_context_iterate (context=0x6980e0, block=1, 
dispatch=1,
    self=<value optimized out>) at gmain.c:2780
#16 0x0000003107842c82 in g_main_loop_run (loop=0x6991a0) at gmain.c:2988
#17 0x000000000042ecfa in main (argc=1, argv=0x7fffffffe678) at src/main.c:304
---
 src/dhcp.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/dhcp.c b/src/dhcp.c
index ab8ee5a..20fc599 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -96,9 +96,11 @@ static void dhcp_invalidate(struct connman_dhcp *dhcp, 
connman_bool_t callback)
        __connman_service_set_pac(service, NULL);
        __connman_service_timeserver_remove(service, dhcp->timeserver);
 
-       for (i = 0; dhcp->nameservers[i] != NULL; i++) {
-               __connman_service_nameserver_remove(service,
-                                               dhcp->nameservers[i]);
+       if (dhcp->nameservers != NULL) {
+               for (i = 0; dhcp->nameservers[i] != NULL; i++) {
+                       __connman_service_nameserver_remove(service,
+                                                       dhcp->nameservers[i]);
+               }
        }
 
        __connman_ipconfig_address_remove(ipconfig);
-- 
1.7.4.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to