From aa3f8d4ca133dbd43598967e68257b5e93789f92 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 28 Sep 2021 14:55:06 +0900 Subject: [PATCH] sd-lldp-rx: ensure no event will be triggered after sd_lldp_rx_detach_event() is called --- src/libsystemd-network/sd-lldp-rx.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/libsystemd-network/sd-lldp-rx.c b/src/libsystemd-network/sd-lldp-rx.c index 21b538a9301..54e8dd87798 100644 --- a/src/libsystemd-network/sd-lldp-rx.c +++ b/src/libsystemd-network/sd-lldp-rx.c @@ -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);