Drivers: hv: vmbus: Use struct_size() helper in kmalloc()
Subsystems (2)
PATCH 1/1 Drivers: hv: vmbus: Use struct_size() helper in kmalloc()
Make use of the struct_size() helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worst scenario, could lead to heap overflows.
Also, address the following sparse warnings:drivers/hv/vmbus_drv.c:1132:31: warning: using sizeof on a flexible structure
--- drivers/hv/vmbus_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/hv/vmbus_drv.c +1 -1
@@ -1129,7 +1129,7 @@ void vmbus_on_msg_dpc(unsigned long data) }if (entry->handler_type ==VMHT_BLOCKING ) { - ctx =kmalloc (sizeof (*ctx) + payload_size,GFP_ATOMIC ); + ctx =kmalloc (struct_size (ctx, msg.payload, payload_size),GFP_ATOMIC );if (ctx ==NULL )return ;
Signature · 1 line
2.27.0
From: Gustavo A. R. Silva <[email protected]> Sent: Tuesday, January 25, 2022 10:02 AM
Quoted 27 lines
Make use of the
struct_size()helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worst scenario, could lead to heap overflows.Also, address the following sparse warnings:
drivers/hv/vmbus_drv.c:1132:31: warning: using sizeof on a flexible structure--- drivers/hv/vmbus_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/hv/vmbus_drv.c +1
-2@@ -1129,7 +1129,7 @@ void vmbus_on_msg_dpc(unsigned long data) }if (entry->handler_type ==VMHT_BLOCKING ) { - ctx =kmalloc (sizeof (*ctx) + payload_size,GFP_ATOMIC ); + ctx =kmalloc (struct_size (ctx, msg.payload, payload_size),GFP_ATOMIC );if (ctx ==NULL )return ; --
Quoted 1 line
2.27.0
Quoted 27 lines · Michael Kelley (LINUX)
From: Gustavo A. R. Silva <[email protected]> Sent: Tuesday, January 25, 2022 10:02 AM
Quoted 26 lines
Make use of the
struct_size()helper instead of an open-coded version, in order to avoid any potential type mistakes or integer overflows that, in the worst scenario, could lead to heap overflows.Also, address the following sparse warnings:
drivers/hv/vmbus_drv.c:1132:31: warning: using sizeof on a flexible structure--- drivers/hv/vmbus_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)drivers/hv/vmbus_drv.c +1
-1@@ -1129,7 +1129,7 @@ void vmbus_on_msg_dpc(unsigned long data) }if (entry->handler_type ==VMHT_BLOCKING ) { - ctx =kmalloc (sizeof (*ctx) + payload_size,GFP_ATOMIC ); + ctx =kmalloc (struct_size (ctx, msg.payload, payload_size),GFP_ATOMIC );if (ctx ==NULL )return ;
Quoted 5 lines
Quoted 2 lines
--
2.27.0Reviewed-by Michael Kelley <[email protected]>
Applied to hyperv-next. Thanks.