diff options
| author | Bruno Silvestre <bruno.silvestre@gmail.com> | 2025-11-08 10:02:32 -0800 |
|---|---|---|
| committer | Colin Percival <cperciva@FreeBSD.org> | 2025-11-10 10:49:11 -0800 |
| commit | 40056e8abc4261651991320488d5e9a1068e6888 (patch) | |
| tree | 14e52b6d1611f1aa59c8ece3b536568691922b50 | |
| parent | ee234a8f17039ca770fda42e45ba9559bc2eb24a (diff) | |
netlink: plug lock leak in genl_register_family()
Approved by: re (cperciva)
PR: 290893
(cherry picked from commit 335fc09ab8d25c3ced027d46f5a0f4103d5c8bee)
(cherry picked from commit a3cd3a4fd68c8a2ea9264f168441a2ce7d51b4c8)
| -rw-r--r-- | sys/netlink/netlink_generic.c | 4 |
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; |
