Re: [PATCH bpf-next v4 1/5] net: Add connect_socket() helper
Jiayuan Chen <[email protected]>
| Newsgroups | gmane.linux.kernel.bpf,gmane.linux.network |
|---|---|
| Message-ID | <[email protected]> |
On 8/7/26 2:22 AM, Mahe Tardy wrote: > 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 <[email protected]> > --- > 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)