From fc4574d166d36d43d7b8b1587bce8f58e86aa48e Mon Sep 17 00:00:00 2001 From: Sir Richard Date: Wed, 10 Mar 2010 04:12:25 +0000 Subject: [PATCH] [NTOS]: No good deed goes unpunished. Continuing the novel/saga from a couple of days ago, it seems that now that impersonation works, various code paths are being tickled into existence. For example, it would seem parts of the system now attempt setting primary tokens. This would cause an assertion, since PspAssignPrimaryToken incorrectly dereferenced the token (leading to a double-dereference) due to an off-by-! mistake. svn path=/trunk/; revision=46049 --- reactos/ntoskrnl/ps/security.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reactos/ntoskrnl/ps/security.c b/reactos/ntoskrnl/ps/security.c index f45b09175dd..ffb894c083b 100644 --- a/reactos/ntoskrnl/ps/security.c +++ b/reactos/ntoskrnl/ps/security.c @@ -206,7 +206,7 @@ PspAssignPrimaryToken(IN PEPROCESS Process, /* Dereference Tokens and Return */ if (NT_SUCCESS(Status)) ObDereferenceObject(OldToken); - if (AccessToken) ObDereferenceObject(NewToken); + if (!AccessToken) ObDereferenceObject(NewToken); return Status; }