* autoload.cc (SetUserObjectSecurity): Drop.
* pinfo.cc (pinfo::set_acl): Use NtSetSecurityObject instead of SetKernelObjectSecurity. * spawn.cc (spawn_guts): Use NtSetSecurityObject instead of SetUserObjectSecurity. * uinfo.cc (cygheap_user::init): Ditto.
This commit is contained in:
		@@ -34,6 +34,7 @@ details. */
 | 
			
		||||
#include "environ.h"
 | 
			
		||||
#include "cygtls.h"
 | 
			
		||||
#include "winf.h"
 | 
			
		||||
#include "ntdll.h"
 | 
			
		||||
 | 
			
		||||
static suffix_info exe_suffixes[] =
 | 
			
		||||
{
 | 
			
		||||
@@ -514,15 +515,18 @@ loop:
 | 
			
		||||
      /* allow the child to interact with our window station/desktop */
 | 
			
		||||
      HANDLE hwst, hdsk;
 | 
			
		||||
      SECURITY_INFORMATION dsi = DACL_SECURITY_INFORMATION;
 | 
			
		||||
      NTSTATUS status;
 | 
			
		||||
      DWORD n;
 | 
			
		||||
      char wstname[1024];
 | 
			
		||||
      char dskname[1024];
 | 
			
		||||
 | 
			
		||||
      hwst = GetProcessWindowStation ();
 | 
			
		||||
      SetUserObjectSecurity (hwst, &dsi, get_null_sd ());
 | 
			
		||||
      if ((status = NtSetSecurityObject (hwst, dsi, get_null_sd ())))
 | 
			
		||||
	system_printf ("NtSetSecurityObject, %lx", status);
 | 
			
		||||
      GetUserObjectInformation (hwst, UOI_NAME, wstname, 1024, &n);
 | 
			
		||||
      hdsk = GetThreadDesktop (GetCurrentThreadId ());
 | 
			
		||||
      SetUserObjectSecurity (hdsk, &dsi, get_null_sd ());
 | 
			
		||||
      if ((status = NtSetSecurityObject (hdsk, dsi, get_null_sd ())))
 | 
			
		||||
	system_printf ("NtSetSecurityObject, %lx", status);
 | 
			
		||||
      GetUserObjectInformation (hdsk, UOI_NAME, dskname, 1024, &n);
 | 
			
		||||
      strcat (wstname, "\\");
 | 
			
		||||
      strcat (wstname, dskname);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user