From 3a82305cde77e50386ec5977bcd7da6056b52452 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Sun, 18 Nov 2007 16:12:45 +0000 Subject: [PATCH] - Fix paged pool overwrite in IopUnloadDriver, due to a typo in arithmetic. Thanks to Andrey Korotaev (unC0Rr) for the testcase. - Make error debug output DPRINT1 instead of DPRINT. svn path=/trunk/; revision=30551 --- reactos/ntoskrnl/io/iomgr/driver.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/reactos/ntoskrnl/io/iomgr/driver.c b/reactos/ntoskrnl/io/iomgr/driver.c index bf3c7f411be..c65c636ee75 100644 --- a/reactos/ntoskrnl/io/iomgr/driver.c +++ b/reactos/ntoskrnl/io/iomgr/driver.c @@ -955,7 +955,7 @@ IopUnloadDriver(PUNICODE_STRING DriverServiceName, BOOLEAN UnloadPnpDrivers) ObjectName.MaximumLength = ObjectName.Length + sizeof(WCHAR); ObjectName.Buffer = ExAllocatePool(PagedPool, ObjectName.MaximumLength); wcscpy(ObjectName.Buffer, L"\\Driver\\"); - memcpy(ObjectName.Buffer + 8, Start, (ObjectName.Length - 8) * sizeof(WCHAR)); + memcpy(ObjectName.Buffer + 8, Start, ObjectName.Length - 8 * sizeof(WCHAR)); ObjectName.Buffer[ObjectName.Length/sizeof(WCHAR)] = 0; /* @@ -967,7 +967,7 @@ IopUnloadDriver(PUNICODE_STRING DriverServiceName, BOOLEAN UnloadPnpDrivers) if (!NT_SUCCESS(Status)) { - DPRINT("Can't locate driver object for %wZ\n", ObjectName); + DPRINT1("Can't locate driver object for %wZ\n", ObjectName); return Status; } @@ -994,7 +994,7 @@ IopUnloadDriver(PUNICODE_STRING DriverServiceName, BOOLEAN UnloadPnpDrivers) if (!NT_SUCCESS(Status)) { - DPRINT("RtlQueryRegistryValues() failed (Status %x)\n", Status); + DPRINT1("RtlQueryRegistryValues() failed (Status %x)\n", Status); return Status; } @@ -1006,7 +1006,7 @@ IopUnloadDriver(PUNICODE_STRING DriverServiceName, BOOLEAN UnloadPnpDrivers) if (!NT_SUCCESS(Status)) { - DPRINT("IopNormalizeImagePath() failed (Status %x)\n", Status); + DPRINT1("IopNormalizeImagePath() failed (Status %x)\n", Status); return Status; }