]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
sd-lldp-rx: ensure no event will be triggered after sd_lldp_rx_detach_event() is...
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Sep 2021 05:55:06 +0000 (14:55 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 28 Sep 2021 06:07:37 +0000 (15:07 +0900)
src/libsystemd-network/sd-lldp-rx.c

index 21b538a93017ddb76d274929a8999759c72f0562..54e8dd87798c5ca08e20500b2182c653f82c430b 100644 (file)
@@ -319,6 +319,8 @@ _public_ int sd_lldp_rx_detach_event(sd_lldp_rx *lldp_rx) {
         assert_return(lldp_rx, -EINVAL);
         assert_return(!sd_lldp_rx_is_running(lldp_rx), -EBUSY);
 
+        lldp_rx->io_event_source = sd_event_source_disable_unref(lldp_rx->io_event_source);
+        lldp_rx->timer_event_source = sd_event_source_disable_unref(lldp_rx->timer_event_source);
         lldp_rx->event = sd_event_unref(lldp_rx->event);
         return 0;
 }
@@ -369,7 +371,6 @@ static sd_lldp_rx *lldp_rx_free(sd_lldp_rx *lldp_rx) {
 
         lldp_rx_reset(lldp_rx);
 
-        sd_event_source_unref(lldp_rx->timer_event_source);
         sd_lldp_rx_detach_event(lldp_rx);
 
         lldp_rx_flush_neighbors(lldp_rx);