Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a22af440 authored by Karsten Graul's avatar Karsten Graul Committed by Greg Kroah-Hartman
Browse files

net/smc: check for valid ib_client_data



commit a2f2ef4a54c0d97aa6a8386f4ff23f36ebb488cf upstream.

In smc_ib_remove_dev() check if the provided ib device was actually
initialized for SMC before.

Reported-by: default avatar <syzbot+84484ccebdd4e5451d91@syzkaller.appspotmail.com>
Fixes: a4cf0443 ("smc: introduce SMC as an IB-client")
Signed-off-by: default avatarKarsten Graul <kgraul@linux.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent b5b9c644
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -552,6 +552,8 @@ static void smc_ib_remove_dev(struct ib_device *ibdev, void *client_data)
	struct smc_ib_device *smcibdev;
	struct smc_ib_device *smcibdev;


	smcibdev = ib_get_client_data(ibdev, &smc_ib_client);
	smcibdev = ib_get_client_data(ibdev, &smc_ib_client);
	if (!smcibdev || smcibdev->ibdev != ibdev)
		return;
	ib_set_client_data(ibdev, &smc_ib_client, NULL);
	ib_set_client_data(ibdev, &smc_ib_client, NULL);
	spin_lock(&smc_ib_devices.lock);
	spin_lock(&smc_ib_devices.lock);
	list_del_init(&smcibdev->list); /* remove from smc_ib_devices */
	list_del_init(&smcibdev->list); /* remove from smc_ib_devices */