]> git.baikalelectronics.ru Git - kernel.git/commit
net/rds: An rds_sock is added too early to the hash table
authorKa-Cheong Poon <ka-cheong.poon@oracle.com>
Wed, 11 Sep 2019 09:58:05 +0000 (02:58 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Sep 2019 14:05:40 +0000 (15:05 +0100)
commitd6b20a05f2eebb8b7d111e9acb4750ff7a6740eb
tree881936d703b86d97f0232c727ebdfb2f4ce82a69
parentf4a45efafd81eed14e85a8ae428da867cde04728
net/rds: An rds_sock is added too early to the hash table

In rds_bind(), an rds_sock is added to the RDS bind hash table before
rs_transport is set.  This means that the socket can be found by the
receive code path when rs_transport is NULL.  And the receive code
path de-references rs_transport for congestion update check.  This can
cause a panic.  An rds_sock should not be added to the bind hash table
before all the needed fields are set.

Reported-by: syzbot+4b4f8163c2e246df3c4c@syzkaller.appspotmail.com
Signed-off-by: Ka-Cheong Poon <ka-cheong.poon@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/rds/bind.c