Skip to content

Commit cedc019

Browse files
jrifeSteve French
authored andcommitted
smb: use kernel_connect() and kernel_bind()
Recent changes to kernel_connect() and kernel_bind() ensure that callers are insulated from changes to the address parameter made by BPF SOCK_ADDR hooks. This patch wraps direct calls to ops->connect() and ops->bind() with kernel_connect() and kernel_bind() to ensure that SMB mounts do not see their mount address overwritten in such cases. Link: https://lore.kernel.org/netdev/9944248dba1bce861375fcce9de663934d933ba9.camel@redhat.com/ Cc: <stable@vger.kernel.org> # 6.0+ Signed-off-by: Jordan Rife <jrife@google.com> Acked-by: Paulo Alcantara (SUSE) <pc@manguebit.com> Signed-off-by: Steve French <stfrench@microsoft.com>
1 parent 8a749fd commit cedc019

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

fs/smb/client/connect.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2895,9 +2895,9 @@ bind_socket(struct TCP_Server_Info *server)
28952895
if (server->srcaddr.ss_family != AF_UNSPEC) {
28962896
/* Bind to the specified local IP address */
28972897
struct socket *socket = server->ssocket;
2898-
rc = socket->ops->bind(socket,
2899-
(struct sockaddr *) &server->srcaddr,
2900-
sizeof(server->srcaddr));
2898+
rc = kernel_bind(socket,
2899+
(struct sockaddr *) &server->srcaddr,
2900+
sizeof(server->srcaddr));
29012901
if (rc < 0) {
29022902
struct sockaddr_in *saddr4;
29032903
struct sockaddr_in6 *saddr6;
@@ -3046,8 +3046,8 @@ generic_ip_connect(struct TCP_Server_Info *server)
30463046
socket->sk->sk_sndbuf,
30473047
socket->sk->sk_rcvbuf, socket->sk->sk_rcvtimeo);
30483048

3049-
rc = socket->ops->connect(socket, saddr, slen,
3050-
server->noblockcnt ? O_NONBLOCK : 0);
3049+
rc = kernel_connect(socket, saddr, slen,
3050+
server->noblockcnt ? O_NONBLOCK : 0);
30513051
/*
30523052
* When mounting SMB root file systems, we do not want to block in
30533053
* connect. Otherwise bail out and then let cifs_reconnect() perform

0 commit comments

Comments
 (0)