From 5a4ac30c7a15712d01110befec1acfe86c2cbed0 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Mon, 27 Sep 2021 18:56:21 +0200 Subject: netifd: rework/fix device free handling Instead of explicitly preventing free in specific code sections using device_lock/device_unlock, defer all device free handling via uloop timeout This avoids an entire class of lurking use-after-free bugs triggered by device event processing and simplifies the code Signed-off-by: Felix Fietkau --- bridge.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'bridge.c') diff --git a/bridge.c b/bridge.c index 2ce5c2b..7e61b9d 100644 --- a/bridge.c +++ b/bridge.c @@ -512,8 +512,6 @@ restart: goto restart; } - device_lock(); - device_remove_user(&bm->dev); uloop_timeout_cancel(&bm->check_timer); @@ -529,8 +527,6 @@ restart: device_set_present(dev, true); } - device_unlock(); - free(bm); } -- cgit v1.2.1