[Bug 275001] if_wg: Missing radix unlock can cause deadlock
Date: Fri, 10 Nov 2023 02:52:45 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275001
Bug ID: 275001
Summary: if_wg: Missing radix unlock can cause deadlock
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Many People
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: aly@aaronly.me
In file 'sys/dev/wg/if_wg.c' function 'wg_aip_add()', the error path of
returning ENOMEM when (node == NULL) is forgetting to unlock the radix tree,
and thus may lead to a deadlock.
Below is the patch, please review.
--- if_wg.c.orig 2023-10-12 09:06:16.983637264 +0800
+++ if_wg.c 2023-10-21 15:29:47.928807521 +0800
@@ -562,7 +562,7 @@
node = root->rnh_lookup(&aip->a_addr, &aip->a_mask, &root->rh);
if (!node) {
free(aip, M_WG);
- return (ENOMEM);
+ ret = ENOMEM;
} else if (node != aip->a_nodes) {
free(aip, M_WG);
aip = (struct wg_aip *)node;
--
You are receiving this mail because:
You are the assignee for the bug.