https://git.reactos.org/?p=reactos.git;a=commitdiff;h=20f57973866eb54d3c2822a3b62a309a9983c196

commit 20f57973866eb54d3c2822a3b62a309a9983c196
Author:     Pierre Schweitzer <[email protected]>
AuthorDate: Wed May 8 20:35:31 2019 +0200
Commit:     Pierre Schweitzer <[email protected]>
CommitDate: Wed May 8 20:35:31 2019 +0200

    [BASESVR] Take SessionId into account while creating BNO directory
---
 subsystems/win/basesrv/init.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/subsystems/win/basesrv/init.c b/subsystems/win/basesrv/init.c
index ebfe937068..84b24f38db 100644
--- a/subsystems/win/basesrv/init.c
+++ b/subsystems/win/basesrv/init.c
@@ -353,8 +353,14 @@ BaseInitializeStaticServerData(IN PCSR_SERVER_DLL 
LoadedServerDll)
                                      SystemRootString.Buffer);
     ASSERT(Success);
 
-    /* FIXME: Check Session ID */
-    wcscpy(BnoBuffer, L"\\BaseNamedObjects");
+    if (SessionId != 0)
+    {
+        swprintf(BnoBuffer, L"\\Sessions\\%ld\\BaseNamedObjects", SessionId);
+    }
+    else
+    {
+        wcscpy(BnoBuffer, L"\\BaseNamedObjects");
+    }
     RtlInitUnicodeString(&BnoString, BnoBuffer);
 
     /* Allocate the server data */
@@ -531,7 +537,7 @@ BaseInitializeStaticServerData(IN PCSR_SERVER_DLL 
LoadedServerDll)
         Status = NtCreateSymbolicLinkObject(&SymHandle,
                                             SYMBOLIC_LINK_ALL_ACCESS,
                                             &ObjectAttributes,
-                                            &SymlinkName);
+                                            &BnoString);
         if ((NT_SUCCESS(Status)) && SessionId == 0) NtClose(SymHandle);
 
         /* Make Session point back to BNOLINKS */

Reply via email to