gdhcp: Check listerner_watch before remove it
authorYu A Wang <arron.wang@intel.com>
Thu, 8 Dec 2011 07:31:05 +0000 (02:31 -0500)
committerSamuel Ortiz <sameo@linux.intel.com>
Fri, 16 Dec 2011 18:48:17 +0000 (19:48 +0100)
Fixed following error:
connmand[4547]: src/dhcp.c:dhcp_release() dhcp 0x8c6d3e8
connmand[4547]: DHCP: switch listening mode (3 ==> 0)

(connmand:4547): GLib-CRITICAL **: g_source_remove: assertion `tag > 0' failed

gdhcp/client.c

index 3270346..6df3281 100644 (file)
@@ -777,7 +777,8 @@ static int switch_listening_mode(GDHCPClient *dhcp_client,
                return 0;
 
        if (dhcp_client->listen_mode != L_NONE) {
-               g_source_remove(dhcp_client->listener_watch);
+               if (dhcp_client->listener_watch > 0)
+                       g_source_remove(dhcp_client->listener_watch);
                dhcp_client->listener_channel = NULL;
                dhcp_client->listen_mode = L_NONE;
                dhcp_client->listener_sockfd = -1;