summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@nbd.name>2021-09-29 14:03:55 +0200
committerFelix Fietkau <nbd@nbd.name>2021-09-29 15:07:16 +0200
commitfac471c4934a960b30118fa6a45651532cdb6e81 (patch)
treecd3971e9e82d51ba4d611fd8227a28fb57425eca
parent186f6eaeba700cc0b2f5440880b782d155f51b0e (diff)
downloadnetifd-fac471c4934a960b30118fa6a45651532cdb6e81.tar.gz
wireless: process and close script file descriptor when rerunning setup
On reloading, setup is called without a teardown, so the previous fd might still be open. Clear it to avoid a leak. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--wireless.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/wireless.c b/wireless.c
index 9c49da0..dafd49a 100644
--- a/wireless.c
+++ b/wireless.c
@@ -431,6 +431,9 @@ wireless_device_run_handler(struct wireless_device *wdev, bool up)
argv[i] = NULL;
if (up && pipe(fds) == 0) {
+ if (wdev->script_proc_fd.fd >= 0)
+ wireless_close_script_proc_fd(wdev);
+
wdev->script_proc_fd.fd = fds[0];
uloop_fd_add(&wdev->script_proc_fd,
ULOOP_READ | ULOOP_EDGE_TRIGGER);