Re: [PATCH bpf-next v4 1/5] net: Add connect_socket() helper
Mahe Tardy <[email protected]>
| Newsgroups | org.kernel.vger.bpf,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On Fri, Aug 07, 2026 at 09:53:51AM +0800, Jiayuan Chen wrote: > > 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) > Yep fixed for next revision, thanks.