]> asedeno.scripts.mit.edu Git - PuTTY.git/commitdiff
Put back in a missing dynamic-load wrapper on SetSecurityInfo.
authorSimon Tatham <anakin@pobox.com>
Sat, 28 Nov 2015 18:31:10 +0000 (18:31 +0000)
committerSimon Tatham <anakin@pobox.com>
Wed, 16 Dec 2015 18:51:24 +0000 (18:51 +0000)
We had inadvertently raised the minimum supported Windows version in
the course of restricting PuTTY's ACL.

windows/winsecur.c
windows/winsecur.h

index 9cdac26c3ba36bf11a09c5d40d6ecf6257714e88..8d0b223aa67b6a892f359ee4a3859071478814a4 100644 (file)
@@ -27,6 +27,7 @@ int got_advapi(void)
         advapi = load_system32_dll("advapi32.dll");
         successful = advapi &&
             GET_WINDOWS_FUNCTION(advapi, GetSecurityInfo) &&
+            GET_WINDOWS_FUNCTION(advapi, SetSecurityInfo) &&
             GET_WINDOWS_FUNCTION(advapi, OpenProcessToken) &&
             GET_WINDOWS_FUNCTION(advapi, GetTokenInformation) &&
             GET_WINDOWS_FUNCTION(advapi, InitializeSecurityDescriptor) &&
@@ -265,16 +266,10 @@ int setprocessacl(char *error)
         goto cleanup;
     }
 
-    if (ERROR_SUCCESS !=
-       SetSecurityInfo(
-                       GetCurrentProcess(),
-                       SE_KERNEL_OBJECT,
-                       OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
-                       usersid,
-                       NULL,
-                       acl,
-                       NULL
-                       )) {
+    if (ERROR_SUCCESS != p_SetSecurityInfo
+        (GetCurrentProcess(), SE_KERNEL_OBJECT,
+         OWNER_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION,
+         usersid, NULL, acl, NULL)) {
        error=dupprintf("Unable to set process ACL: %s",
                        win_strerror(GetLastError()));
        goto cleanup;
index 03e8314d7b72bfacc1b80160dd26011f9ee7a43a..ed3151c5179427f6d53d6603f1c9a7015df9b586 100644 (file)
@@ -28,6 +28,9 @@ DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, GetSecurityInfo,
                      (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
                       PSID *, PSID *, PACL *, PACL *,
                       PSECURITY_DESCRIPTOR *));
+DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetSecurityInfo,
+                     (HANDLE, SE_OBJECT_TYPE, SECURITY_INFORMATION,
+                      PSID, PSID, PACL, PACL));
 DECL_WINDOWS_FUNCTION(WINSECUR_GLOBAL, DWORD, SetEntriesInAclA,
                      (ULONG, PEXPLICIT_ACCESS, PACL, PACL *));
 int got_advapi(void);