Author: hbelusca Date: Tue Nov 13 21:08:19 2012 New Revision: 57701
URL: http://svn.reactos.org/svn/reactos?rev=57701&view=rev Log: [CSRSRV] - Use a variable ServerDll instead of using each time CsrLoadedServerDll[i], as it is done in some other places. - Clean the code (remove extra-parentheses). - Zero-out the memory buffer allocated for CsrSrvSharedStaticServerData.
Modified: branches/ros-csrss/subsystems/win32/csrsrv/init.c branches/ros-csrss/subsystems/win32/csrsrv/procsup.c branches/ros-csrss/subsystems/win32/csrsrv/server.c branches/ros-csrss/subsystems/win32/csrsrv/session.c
Modified: branches/ros-csrss/subsystems/win32/csrsrv/init.c URL: http://svn.reactos.org/svn/reactos/branches/ros-csrss/subsystems/win32/csrsr... ============================================================================== --- branches/ros-csrss/subsystems/win32/csrsrv/init.c [iso-8859-1] (original) +++ branches/ros-csrss/subsystems/win32/csrsrv/init.c [iso-8859-1] Tue Nov 13 21:08:19 2012 @@ -54,7 +54,7 @@ ServerDll = CsrLoadedServerDll[i];
/* Make sure it's valid and that it has callback */ - if ((ServerDll) && (ServerDll->HardErrorCallback)) + if (ServerDll && ServerDll->HardErrorCallback) { ServerDll->HardErrorCallback(ThreadData, HardErrorMessage); }
Modified: branches/ros-csrss/subsystems/win32/csrsrv/procsup.c URL: http://svn.reactos.org/svn/reactos/branches/ros-csrss/subsystems/win32/csrsr... ============================================================================== --- branches/ros-csrss/subsystems/win32/csrsrv/procsup.c [iso-8859-1] (original) +++ branches/ros-csrss/subsystems/win32/csrsrv/procsup.c [iso-8859-1] Tue Nov 13 21:08:19 2012 @@ -437,7 +437,7 @@ ServerDll = CsrLoadedServerDll[i];
/* Check if it's valid and if it has a Disconnect Callback */ - if ((ServerDll) && (ServerDll->DisconnectCallback)) + if (ServerDll && ServerDll->DisconnectCallback) { /* Call it */ ServerDll->DisconnectCallback(CsrProcess); @@ -530,6 +530,7 @@ PCSR_THREAD CurrentThread = CsrGetClientThread(); CLIENT_ID CurrentCid; PCSR_PROCESS CurrentProcess; + PCSR_SERVER_DLL ServerDll; PVOID ProcessData; ULONG i; PCSR_PROCESS CsrProcess; @@ -564,8 +565,11 @@ ProcessData = &CurrentProcess->ServerData[CSR_SERVER_DLL_MAX]; for (i = 0; i < CSR_SERVER_DLL_MAX; i++) { + /* Get the current Server */ + ServerDll = CsrLoadedServerDll[i]; + /* Check if the DLL is Loaded and has Per Process Data */ - if ((CsrLoadedServerDll[i]) && (CsrLoadedServerDll[i]->SizeOfProcessData)) + if (ServerDll && ServerDll->SizeOfProcessData) { /* Set the pointer */ CsrProcess->ServerData[i] = ProcessData; @@ -573,11 +577,11 @@ /* Copy the Data */ RtlMoveMemory(ProcessData, CurrentProcess->ServerData[i], - CsrLoadedServerDll[i]->SizeOfProcessData); + ServerDll->SizeOfProcessData);
/* Update next data pointer */ ProcessData = (PVOID)((ULONG_PTR)ProcessData + - CsrLoadedServerDll[i]->SizeOfProcessData); + ServerDll->SizeOfProcessData); } else { @@ -1305,7 +1309,9 @@ { /* Get the current server */ ServerDll = CsrLoadedServerDll[i]; - if ((ServerDll) && (ServerDll->ShutdownProcessCallback)) + + /* Check if it's valid and if it has a Shutdown Process Callback */ + if (ServerDll && ServerDll->ShutdownProcessCallback) { /* Release the lock, make the callback, and acquire it back */ CsrReleaseProcessLock();
Modified: branches/ros-csrss/subsystems/win32/csrsrv/server.c URL: http://svn.reactos.org/svn/reactos/branches/ros-csrss/subsystems/win32/csrsr... ============================================================================== --- branches/ros-csrss/subsystems/win32/csrsrv/server.c [iso-8859-1] (original) +++ branches/ros-csrss/subsystems/win32/csrsrv/server.c [iso-8859-1] Tue Nov 13 21:08:19 2012 @@ -421,7 +421,7 @@
/* Now allocate space from the heap for the Shared Data */ CsrSrvSharedStaticServerData = RtlAllocateHeap(CsrSrvSharedSectionHeap, - 0, + HEAP_ZERO_MEMORY, CSR_SERVER_DLL_MAX * sizeof(PVOID)); if (!CsrSrvSharedStaticServerData) return STATUS_NO_MEMORY;
Modified: branches/ros-csrss/subsystems/win32/csrsrv/session.c URL: http://svn.reactos.org/svn/reactos/branches/ros-csrss/subsystems/win32/csrsr... ============================================================================== --- branches/ros-csrss/subsystems/win32/csrsrv/session.c [iso-8859-1] (original) +++ branches/ros-csrss/subsystems/win32/csrsrv/session.c [iso-8859-1] Tue Nov 13 21:08:19 2012 @@ -215,10 +215,11 @@ PSB_CREATE_SESSION_MSG CreateSession = &ApiMessage->CreateSession; HANDLE hProcess, hThread; PCSR_PROCESS CsrProcess; + PCSR_THREAD CsrThread; + PCSR_SERVER_DLL ServerDll; + PVOID ProcessData; NTSTATUS Status; KERNEL_USER_TIMES KernelTimes; - PCSR_THREAD CsrThread; - PVOID ProcessData; ULONG i;
/* Save the Process and Thread Handles */ @@ -309,15 +310,18 @@ /* Loop every DLL */ for (i = 0; i < CSR_SERVER_DLL_MAX; i++) { + /* Get the current Server */ + ServerDll = CsrLoadedServerDll[i]; + /* Check if the DLL is loaded and has Process Data */ - if (CsrLoadedServerDll[i] && CsrLoadedServerDll[i]->SizeOfProcessData) + if (ServerDll && ServerDll->SizeOfProcessData) { /* Write the pointer to the data */ CsrProcess->ServerData[i] = ProcessData;
/* Move to the next data location */ ProcessData = (PVOID)((ULONG_PTR)ProcessData + - CsrLoadedServerDll[i]->SizeOfProcessData); + ServerDll->SizeOfProcessData); } else {