Skip to content

Commit fb1adbd

Browse files
Saurabh Sengargregkh
authored andcommitted
uio_hv_generic: Fix kernel NULL pointer dereference in hv_uio_rescind
For primary VM Bus channels, primary_channel pointer is always NULL. This pointer is valid only for the secondary channels. Also, rescind callback is meant for primary channels only. Fix NULL pointer dereference by retrieving the device_obj from the parent for the primary channel. Cc: stable@vger.kernel.org Fixes: ca3cda6 ("uio_hv_generic: add rescind support") Signed-off-by: Saurabh Sengar <ssengar@linux.microsoft.com> Signed-off-by: Naman Jain <namjain@linux.microsoft.com> Link: https://lore.kernel.org/r/20240829071312.1595-2-namjain@linux.microsoft.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 7d32e77 commit fb1adbd

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

drivers/uio/uio_hv_generic.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,11 @@ static void hv_uio_channel_cb(void *context)
106106

107107
/*
108108
* Callback from vmbus_event when channel is rescinded.
109+
* It is meant for rescind of primary channels only.
109110
*/
110111
static void hv_uio_rescind(struct vmbus_channel *channel)
111112
{
112-
struct hv_device *hv_dev = channel->primary_channel->device_obj;
113+
struct hv_device *hv_dev = channel->device_obj;
113114
struct hv_uio_private_data *pdata = hv_get_drvdata(hv_dev);
114115

115116
/*

0 commit comments

Comments
 (0)