[NTOSKRNL] On process primary token change, dereference device map
authorPierre Schweitzer <pierre@reactos.org>
Sun, 2 Jun 2019 07:50:05 +0000 (09:50 +0200)
committerPierre Schweitzer <pierre@reactos.org>
Sun, 2 Jun 2019 08:00:17 +0000 (10:00 +0200)
ntoskrnl/ps/security.c

index e245dde..619ff56 100644 (file)
@@ -325,6 +325,14 @@ PspSetPrimaryToken(IN PEPROCESS Process,
                                        STANDARD_RIGHTS_ALL |
                                        PROCESS_SET_QUOTA);
         }
                                        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 */
     }
 
     /* Dereference the token */