mirror of
https://github.com/reactos/reactos.git
synced 2024-10-07 09:54:40 +00:00
* Call RtlCreateUnicodeString() instead of RtlInitUnicodeString() when
initializing the DeviceNode->ServiceName, since IopFreeDeviceNode() will use RtlFreeUnicodeString() on it. * Call ObDereferenceObject() instead of ExFreePool() to release the DeviceObject if DriverEntry fails. Patch from Joseph Galbraith. svn path=/trunk/; revision=3053
This commit is contained in:
parent
72a2cedd0a
commit
a07b0d8b8e
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: device.c,v 1.43 2002/06/10 23:03:33 ekohl Exp $
|
/* $Id: device.c,v 1.44 2002/06/12 14:05:03 chorns Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -529,7 +529,7 @@ IopInitializeDriver(PDRIVER_INITIALIZE DriverEntry,
|
||||||
{
|
{
|
||||||
DeviceNode->DriverObject = NULL;
|
DeviceNode->DriverObject = NULL;
|
||||||
ExFreePool(DriverObject->DriverExtension);
|
ExFreePool(DriverObject->DriverExtension);
|
||||||
ExFreePool(DriverObject);
|
ObDereferenceObject(DriverObject);
|
||||||
return(Status);
|
return(Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: driver.c,v 1.2 2002/06/10 23:03:33 ekohl Exp $
|
/* $Id: driver.c,v 1.3 2002/06/12 14:05:03 chorns Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -142,8 +142,7 @@ NtLoadDriver(IN PUNICODE_STRING DriverServiceName)
|
||||||
Length = wcslen(Start);
|
Length = wcslen(Start);
|
||||||
|
|
||||||
wcsncpy(Buffer, Start, Length);
|
wcsncpy(Buffer, Start, Length);
|
||||||
RtlInitUnicodeString(&DeviceNode->ServiceName, Buffer);
|
RtlCreateUnicodeString(&DeviceNode->ServiceName, Buffer);
|
||||||
|
|
||||||
|
|
||||||
Status = IopInitializeDriver(ModuleObject->EntryPoint, DeviceNode);
|
Status = IopInitializeDriver(ModuleObject->EntryPoint, DeviceNode);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: loader.c,v 1.108 2002/06/11 18:37:23 ekohl Exp $
|
/* $Id: loader.c,v 1.109 2002/06/12 14:05:03 chorns Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -1103,8 +1103,7 @@ LdrInitializeBootStartDriver(PVOID ModuleLoadBase,
|
||||||
Length = wcslen(Start);
|
Length = wcslen(Start);
|
||||||
|
|
||||||
wcsncpy(Buffer, Start, Length);
|
wcsncpy(Buffer, Start, Length);
|
||||||
RtlInitUnicodeString(&DeviceNode->ServiceName, Buffer);
|
RtlCreateUnicodeString(&DeviceNode->ServiceName, Buffer);
|
||||||
|
|
||||||
|
|
||||||
Status = IopInitializeDriver(ModuleObject->EntryPoint, DeviceNode);
|
Status = IopInitializeDriver(ModuleObject->EntryPoint, DeviceNode);
|
||||||
if (!NT_SUCCESS(Status))
|
if (!NT_SUCCESS(Status))
|
||||||
|
|
Loading…
Reference in a new issue