https://git.reactos.org/?p=reactos.git;a=commitdiff;h=838abc475cfc485acdc36…
commit 838abc475cfc485acdc362e0df88b4590081c8e4
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Thu Jun 17 17:47:01 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Mon Jun 28 10:20:57 2021 +0200
[NTOS:IO] Do not ignore RtlDuplicateUnicodeString return value
CORE-17637
---
ntoskrnl/io/pnpmgr/devaction.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/ntoskrnl/io/pnpmgr/devaction.c b/ntoskrnl/io/pnpmgr/devaction.c
index b98c2145723..18a435f3a38 100644
--- a/ntoskrnl/io/pnpmgr/devaction.c
+++ b/ntoskrnl/io/pnpmgr/devaction.c
@@ -1396,6 +1396,14 @@ IopSetServiceEnumData(
goto done;
}
+ Status =
RtlDuplicateUnicodeString(RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING,
+ &ServiceName,
+ &DeviceNode->ServiceName);
+ if (!NT_SUCCESS(Status))
+ {
+ goto done;
+ }
+
RtlInitUnicodeString(&EnumKeyName, L"Enum");
Status = IopCreateRegistryKeyEx(&ServiceEnumKey,
ServiceKey,
@@ -1480,10 +1488,6 @@ IopSetServiceEnumData(
sizeof(NextInstance));
}
- RtlDuplicateUnicodeString(RTL_DUPLICATE_UNICODE_STRING_ALLOCATE_NULL_STRING,
- &ServiceName,
- &DeviceNode->ServiceName);
-
done:
if (ServiceEnumKey != NULL)
ZwClose(ServiceEnumKey);