inet: Cleanup rtnl callback data properly
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Mon, 1 Oct 2012 10:15:42 +0000 (13:15 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 1 Oct 2012 10:47:29 +0000 (13:47 +0300)
The inet_rtnl_cb_data struct allocated in __connman_inet_rtnl_talk()
was not deallocated if we expected data from kernel.

src/inet.c

index 2dcb63cf447ce6d52d2e84919b3bfd0c93af2ffd..be69acab10335daf8c4aa16f31f19993306267d0 100644 (file)
@@ -2071,13 +2071,7 @@ static int inet_rtnl_recv(GIOChannel *chan, gpointer user_data)
 
                rtnl_data->callback(h, rtnl_data->user_data);
 
-               if (rtnl_data->rtnl_timeout > 0) {
-                       g_source_remove(rtnl_data->rtnl_timeout);
-                       rtnl_data->rtnl_timeout = 0;
-               }
-
-               __connman_inet_rtnl_close(rth);
-               g_free(rth);
+               inet_rtnl_cleanup(rtnl_data);
        }
 
        return 0;