ksmbd: Unlock on in ksmbd_tcp_set_interfaces()
authorDan Carpenter <dan.carpenter@linaro.org>
Thu, 29 Aug 2024 19:22:35 +0000 (22:22 +0300)
committerSteve French <stfrench@microsoft.com>
Fri, 30 Aug 2024 01:28:37 +0000 (20:28 -0500)
Unlock before returning an error code if this allocation fails.

Fixes: 0626e6641f6b ("cifsd: add server handler for central processing and tranport layers")
Cc: stable@vger.kernel.org # v5.15+
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/transport_tcp.c

index a84788396daaa46c685f8e3ec95e53619084ce39..aaed9e293b2e0235a59677e8c1ffa19b336fc38f 100644 (file)
@@ -624,8 +624,10 @@ int ksmbd_tcp_set_interfaces(char *ifc_list, int ifc_list_sz)
                for_each_netdev(&init_net, netdev) {
                        if (netif_is_bridge_port(netdev))
                                continue;
-                       if (!alloc_iface(kstrdup(netdev->name, GFP_KERNEL)))
+                       if (!alloc_iface(kstrdup(netdev->name, GFP_KERNEL))) {
+                               rtnl_unlock();
                                return -ENOMEM;
+                       }
                }
                rtnl_unlock();
                bind_additional_ifaces = 1;