diff options
author | Felix Fietkau <nbd@nbd.name> | 2021-09-27 18:56:21 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2021-09-27 18:58:01 +0200 |
commit | 5a4ac30c7a15712d01110befec1acfe86c2cbed0 (patch) | |
tree | ad52b0310a781078efb9b016fbe80d89ca50001d /bridge.c | |
parent | 08e954e137ffcf7770200bbd6476dc36bbd326f5 (diff) | |
download | netifd-5a4ac30c7a15712d01110befec1acfe86c2cbed0.tar.gz |
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 <nbd@nbd.name>
Diffstat (limited to 'bridge.c')
-rw-r--r-- | bridge.c | 4 |
1 files changed, 0 insertions, 4 deletions
@@ -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); } |