aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Silvestre <bruno.silvestre@gmail.com>2025-11-08 18:02:32 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2025-11-08 18:02:32 +0000
commit335fc09ab8d25c3ced027d46f5a0f4103d5c8bee (patch)
treeee183e9d8c01266fc1169f0690881d4f03504535
parent4e36942420712c2ab6ebc2c646e61d47b2b68e7b (diff)
netlink: plug lock leak in genl_register_family()
PR: 290893
-rw-r--r--sys/netlink/netlink_generic.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/netlink/netlink_generic.c b/sys/netlink/netlink_generic.c
index 00f47e60f013..d20ec4c7545f 100644
--- a/sys/netlink/netlink_generic.c
+++ b/sys/netlink/netlink_generic.c
@@ -366,8 +366,10 @@ genl_register_family(const char *family_name, size_t hdrsize,
GENL_LOCK();
for (u_int i = 0; i < MAX_FAMILIES; i++)
if (families[i].family_name != NULL &&
- strcmp(families[i].family_name, family_name) == 0)
+ strcmp(families[i].family_name, family_name) == 0) {
+ GENL_UNLOCK();
return (0);
+ }
/* Microoptimization: index 0 is reserved for the control family. */
gf = NULL;