From: Daan De Meyer <daan.j.demeyer@xxxxxxxxx> Date: Thu, 12 Oct 2023 10:52:13 +0200 > Changes since v1: > > * Added missing Signed-off-by tag You can put these after --- so that it will disappear when merged. > > We should not run the recvmsg() hooks on unnamed sockets as we do > not run them on unnamed sockets in the other hooks either. We may > look into relaxing this later but for now let's make sure we are > consistent and not run the hooks on unnamed sockets anywhere. > > Signed-off-by: Daan De Meyer <daan.j.demeyer@xxxxxxxxx> > --- > net/unix/af_unix.c | 14 ++++++++------ > 1 file changed, 8 insertions(+), 6 deletions(-) > > diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c > index e10d07c76044..81fb8bddaff9 100644 > --- a/net/unix/af_unix.c > +++ b/net/unix/af_unix.c > @@ -2416,9 +2416,10 @@ int __unix_dgram_recvmsg(struct sock *sk, struct msghdr *msg, size_t size, > if (msg->msg_name) { > unix_copy_addr(msg, skb->sk); How is an unnamed socket set to skb->sk ? > > - BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk, > - msg->msg_name, > - &msg->msg_namelen); > + if (msg->msg_namelen > 0) > + BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk, > + msg->msg_name, > + &msg->msg_namelen); > } > > if (size > skb->len - skip) > @@ -2773,9 +2774,10 @@ static int unix_stream_read_generic(struct unix_stream_read_state *state, > state->msg->msg_name); > unix_copy_addr(state->msg, skb->sk); > > - BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk, > - state->msg->msg_name, > - &state->msg->msg_namelen); > + if (state->msg->msg_namelen > 0) > + BPF_CGROUP_RUN_PROG_UNIX_RECVMSG_LOCK(sk, > + state->msg->msg_name, > + &state->msg->msg_namelen); > > sunaddr = NULL; > } > -- > 2.41.0 >