https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f8a4d31da489660d48975…
commit f8a4d31da489660d48975a685da49fb1f4748685
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Sun Jun 2 09:50:05 2019 +0200
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Sun Jun 2 10:00:17 2019 +0200
[NTOSKRNL] On process primary token change, dereference device map
---
ntoskrnl/ps/security.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/ntoskrnl/ps/security.c b/ntoskrnl/ps/security.c
index e245dde563f..619ff56d247 100644
--- a/ntoskrnl/ps/security.c
+++ b/ntoskrnl/ps/security.c
@@ -325,6 +325,14 @@ PspSetPrimaryToken(IN PEPROCESS Process,
STANDARD_RIGHTS_ALL |
PROCESS_SET_QUOTA);
}
+
+ /*
+ * In case LUID device maps are enable, we may not be using
+ * system device map for this process, but a logon LUID based
+ * device map. Because we change primary token, this usage is
+ * no longer valid, so dereference the process device map
+ */
+ if (ObIsLUIDDeviceMapsEnabled()) ObDereferenceDeviceMap(Process);
}
/* Dereference the token */