summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/dhcp.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/dhcp.c b/src/dhcp.c
index 83d7dfb3..b35f15a6 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -577,6 +577,7 @@ int __connman_dhcp_start(struct connman_network *network, dhcp_cb callback)
struct connman_ipconfig *ipconfig;
const char *last_addr = NULL;
struct connman_dhcp *dhcp;
+ int err;
DBG("");
@@ -598,9 +599,14 @@ int __connman_dhcp_start(struct connman_network *network, dhcp_cb callback)
dhcp->network = network;
connman_network_ref(network);
- g_hash_table_insert(network_table, network, dhcp);
+ err = dhcp_initialize(dhcp);
+ if (err < 0) {
+ connman_network_unref(network);
+ g_free(dhcp);
+ return err;
+ }
- dhcp_initialize(dhcp);
+ g_hash_table_insert(network_table, network, dhcp);
}
dhcp->callback = callback;