diff --git a/ntoskrnl/io/iomgr/driver.c b/ntoskrnl/io/iomgr/driver.c index 9f7d5ed5aba..3b033f9ab32 100644 --- a/ntoskrnl/io/iomgr/driver.c +++ b/ntoskrnl/io/iomgr/driver.c @@ -1251,7 +1251,7 @@ IopUnloadDriver(PUNICODE_STRING DriverServiceName, BOOLEAN UnloadPnpDrivers) DPRINT("IopUnloadDriver('%wZ', %u)\n", &CapturedServiceName, UnloadPnpDrivers); /* We need a service name */ - if (CapturedServiceName.Length == 0) + if (CapturedServiceName.Length == 0 || CapturedServiceName.Buffer == NULL) { ReleaseCapturedUnicodeString(&CapturedServiceName, PreviousMode); return STATUS_INVALID_PARAMETER; @@ -2161,6 +2161,13 @@ NtLoadDriver(IN PUNICODE_STRING DriverServiceName) DPRINT("NtLoadDriver('%wZ')\n", &CapturedServiceName); + /* We need a service name */ + if (CapturedServiceName.Length == 0 || CapturedServiceName.Buffer == NULL) + { + ReleaseCapturedUnicodeString(&CapturedServiceName, PreviousMode); + return STATUS_INVALID_PARAMETER; + } + /* Load driver and call its entry point */ DriverObject = NULL; Status = IopLoadUnloadDriver(&CapturedServiceName, &DriverObject);