From: Yu Watanabe Date: Tue, 28 Sep 2021 05:55:06 +0000 (+0900) Subject: sd-lldp-rx: ensure no event will be triggered after sd_lldp_rx_detach_event() is... X-Git-Tag: v250-rc1~612^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa3f8d4ca133dbd43598967e68257b5e93789f92;p=thirdparty%2Fsystemd.git sd-lldp-rx: ensure no event will be triggered after sd_lldp_rx_detach_event() is called --- 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);