Cancel (re)connect timer when deleting interface
authorRafał Miłecki <rafal@milecki.pl>
Fri, 10 Mar 2017 10:49:44 +0000 (11:49 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Fri, 10 Mar 2017 10:54:12 +0000 (11:54 +0100)
Firing timeout would cause a crash if interface has been deleted
meanwhile. The easiest way to trigger this was calling set_config ubus
method twice within 100 ms.
Cancel pending interface start before freeing it.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
interface.c

index f9fe40a5fc5d877f7851e29b48242667679fddc0..a09e7ce093a54f51d99bcadbeb3ae2c44a7df4a8 100644 (file)
@@ -153,6 +153,7 @@ static void interface_close(struct interface *iface)
 
 static void interface_free(struct interface *iface)
 {
+       uloop_timeout_cancel(&iface->reconnect);
        interface_close(iface);
        free(iface);
 }