[PATCH] ntoskrnl.exe: Don't use irp after it has been freed by IoCompleteRequest (Coverity).
Signed-off-by: Sven Baars <sven.wine(a)gmail.com> --- dlls/ntoskrnl.exe/pnp.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dlls/ntoskrnl.exe/pnp.c b/dlls/ntoskrnl.exe/pnp.c index 30865a05dc..03c4c401f9 100644 --- a/dlls/ntoskrnl.exe/pnp.c +++ b/dlls/ntoskrnl.exe/pnp.c @@ -725,6 +725,7 @@ static NTSTATUS WINAPI pnp_manager_device_pnp( DEVICE_OBJECT *device, IRP *irp ) { IO_STACK_LOCATION *stack = IoGetCurrentIrpStackLocation( irp ); struct root_pnp_device *root_device = device->DeviceExtension; + NTSTATUS status; TRACE("device %p, irp %p, minor function %#x.\n", device, irp, stack->MinorFunction); @@ -783,8 +784,9 @@ static NTSTATUS WINAPI pnp_manager_device_pnp( DEVICE_OBJECT *device, IRP *irp ) FIXME("Unhandled PnP request %#x.\n", stack->MinorFunction); } + status = irp->IoStatus.u.Status; IoCompleteRequest( irp, IO_NO_INCREMENT ); - return irp->IoStatus.u.Status; + return status; } static NTSTATUS WINAPI pnp_manager_driver_entry( DRIVER_OBJECT *driver, UNICODE_STRING *keypath ) -- 2.17.1
Hi, While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check? Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=55570 Your paranoid android. === debian10 (32 bit report) === Report errors: ntoskrnl.exe:ntoskrnl contains a misplaced todo message for driver === debian10 (32 bit Chinese:China report) === Report errors: ntoskrnl.exe:ntoskrnl contains a misplaced todo message for driver === debian10 (32 bit WoW report) === Report errors: ntoskrnl.exe:ntoskrnl contains a misplaced todo message for driver === debian10 (64 bit WoW report) === Report errors: ntoskrnl.exe:ntoskrnl contains a misplaced todo message for driver
participants (2)
-
Marvin -
Sven Baars