From: Charalampos Mitrodimas <charmitro@posteo.net>
To: Tabrez Ahmed <tabreztalks@gmail.com>
Cc: allison.henderson@oracle.com, davem@davemloft.net,
edumazet@google.com, kuba@kernel.org, pabeni@redhat.com,
horms@kernel.org, linux-rdma@vger.kernel.org,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
syzbot+aae646f09192f72a68dc@syzkaller.appspotmail.com
Subject: Re: [PATCH net] rds: tcp: fix uninit-value in __inet_bind
Date: Sun, 15 Feb 2026 17:41:20 +0000 [thread overview]
Message-ID: <877bsdx5tt.fsf@posteo.net> (raw)
In-Reply-To: <20260215070951.213341-1-tabreztalks@gmail.com>
Tabrez Ahmed <tabreztalks@gmail.com> writes:
> KMSAN reported an uninit-value access in __inet_bind() when binding an RDS TCP socket.
> The uninitialized memory originates from rds_tcp_conn_alloc(), which uses kmem_cache_alloc() to allocate the rds_tcp_connection structure.
>
> The structure is not zero-initialized, leaving random data in its fields.
> When the networking stack later tries to bind the socket using these dirty values, KMSAN flags the uninitialized access.
Most fields in rds_tcp_connection are explicitly initialized after
allocation right? The only field actually read before being written is
t_client_port_group. Could the description be more specific about which
field is problematic?
>
> Fix this by using kmem_cache_zalloc() instead of kmem_cache_alloc() to ensure the structure is zeroed out upon allocation.
>
> Reported-by: syzbot+aae646f09192f72a68dc@syzkaller.appspotmail.com
> Closes: https://syzkaller.appspot.com/bug?extid=aae646f09192f72a68dc
> Tested-by: syzbot+aae646f09192f72a68dc@syzkaller.appspotmail.com
> Fixes: 70041088e3b9 ("RDS: Add TCP transport to RDS")
Not sure about this, the field trigger this bug, t_client_port_group,
did not exist in 70041088e3b9. It was introduced in
a20a6992558f ("net/rds: Encode cp_index in TCP source port")
which added both the field and the code in rds_tcp_conn_path_connect()
that reads it uninitialized:
if (++tc->t_client_port_group >= port_groups)
Should the Fixes that reference that instead? If I'm correct ofc.
Also, nit, commit message body should not exceed 75 characters.
>
> Signed-off-by: Tabrez Ahmed <tabreztalks@gmail.com>
> ---
> This is my first patch. Any feedback is appreciated!
Best of luck.
>
> net/rds/tcp.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/net/rds/tcp.c b/net/rds/tcp.c
> index 45484a93d75f..04f310255692 100644
> --- a/net/rds/tcp.c
> +++ b/net/rds/tcp.c
> @@ -373,7 +373,7 @@ static int rds_tcp_conn_alloc(struct rds_connection *conn, gfp_t gfp)
> int ret = 0;
>
> for (i = 0; i < RDS_MPATH_WORKERS; i++) {
> - tc = kmem_cache_alloc(rds_tcp_conn_slab, gfp);
> + tc = kmem_cache_zalloc(rds_tcp_conn_slab, gfp);
> if (!tc) {
> ret = -ENOMEM;
> goto fail;
next prev parent reply other threads:[~2026-02-15 17:41 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-15 7:09 [PATCH net] rds: tcp: fix uninit-value in __inet_bind Tabrez Ahmed
2026-02-15 17:41 ` Charalampos Mitrodimas [this message]
2026-02-16 20:49 ` Allison Henderson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=877bsdx5tt.fsf@posteo.net \
--to=charmitro@posteo.net \
--cc=allison.henderson@oracle.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=syzbot+aae646f09192f72a68dc@syzkaller.appspotmail.com \
--cc=tabreztalks@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.