Thread (13 messages) flat view 13 messages, 3 authors, 2d ago

Re: [PATCH bpf-next v4 1/5] net: Add connect_socket() helper

From: Jiayuan Chen <jiayuan.chen@linux.dev>
Date: 2026-08-07 01:54:17
Also in: bpf

On 8/7/26 2:22 AM, Mahe Tardy wrote:
quoted hunk ↗ jump to hunk
Add a helper that connects an existing socket while invoking the LSM
hook. Reuse it in __sys_connect_file() to avoid duplicating the connect
logic. Other socket operations have equivalent helpers that trigger the
appropriate LSM hooks that can be reused, this one was the only one
missing.

Signed-off-by: Mahe Tardy <redacted>
---
  include/linux/socket.h |  2 ++
  net/socket.c           | 32 ++++++++++++++++++--------------
  2 files changed, 20 insertions(+), 14 deletions(-)
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 2a8d7b14f1d1..8964528e3823 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -461,6 +461,8 @@ extern struct file *__sys_socket_file(int family, int type, int protocol);
  extern int __sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen);
  extern int __sys_bind_socket(struct socket *sock, struct sockaddr_storage *address,
  			     int addrlen);
+extern int connect_socket(struct socket *sock, struct sockaddr_storage *addr,
+				int addrlen, int flags);
  extern int __sys_connect_file(struct file *file, struct sockaddr_storage *addr,
  			      int addrlen, int file_flags);
  extern int __sys_connect(int fd, struct sockaddr __user *uservaddr,
diff --git a/net/socket.c b/net/socket.c
index 63c69a0fa74e..126a674f534d 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -2103,6 +2103,20 @@ SYSCALL_DEFINE3(accept, int, fd, struct sockaddr __user *, upeer_sockaddr,
  	return __sys_accept4(fd, upeer_sockaddr, upeer_addrlen, 0);
  }

+int connect_socket(struct socket *sock, struct sockaddr_storage *address,
+			 int addrlen, int flags)
+{

Please fix the checkpatch warning if revise

CHECK: extern prototypes should be avoided in .h files
#27: FILE: include/linux/socket.h:464:
+extern int connect_socket(struct socket *sock, struct sockaddr_storage 
*addr,

CHECK: Alignment should match open parenthesis
#28: FILE: include/linux/socket.h:465:
+extern int connect_socket(struct socket *sock, struct sockaddr_storage 
*addr,
+                int addrlen, int flags);

CHECK: Alignment should match open parenthesis
#41: FILE: net/socket.c:2107:
+int connect_socket(struct socket *sock, struct sockaddr_storage *address,
+             int addrlen, int flags)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help