OSDN Git Service

* spawn.cc (span_guts): Retrieve security attributes before setting
authorcorinna <corinna>
Fri, 21 Jul 2000 19:34:35 +0000 (19:34 +0000)
committercorinna <corinna>
Fri, 21 Jul 2000 19:34:35 +0000 (19:34 +0000)
        psid to NULL.

winsup/cygwin/ChangeLog
winsup/cygwin/spawn.cc

index 6a33572..7b5ae0b 100644 (file)
@@ -1,3 +1,8 @@
+Fri Jul 21 21:33:00 2000  Corinna Vinschen <corinna@vinschen.de>
+
+       * spawn.cc (span_guts): Retrieve security attributes before setting
+       psid to NULL.
+
 Fri Jul 21 12:03:00 2000  Corinna Vinschen <corinna@vinschen.de>
 
        * security.cc (acl_worker): Use stat_suffixes in call to path_conv
index f9660d9..c12882c 100644 (file)
@@ -536,6 +536,12 @@ skip_arg_parsing:
       else
         system_printf ("GetTokenInformation: %E");
 
+      /* Retrieve security attributes before setting psid to NULL
+         since it's value is needed by `sec_user'. */
+      PSECURITY_ATTRIBUTES sec_attribs = allow_ntsec && sid
+                                         ? sec_user (sa_buf, sid)
+                                         : &sec_all_nih;
+
       /* Remove impersonation */
       uid_t uid = geteuid();
       if (myself->impersonated && myself->token != INVALID_HANDLE_VALUE)
@@ -553,12 +559,8 @@ skip_arg_parsing:
       rc = CreateProcessAsUser (hToken,
                       real_path,       /* image name - with full path */
                       one_line.buf,    /* what was passed to exec */
-                                        /* process security attrs */
-                       allow_ntsec && sid ? sec_user (sa_buf, sid)
-                                          : &sec_all_nih,
-                                        /* thread security attrs */
-                       allow_ntsec && sid ? sec_user (sa_buf, sid)
-                                          : &sec_all_nih,
+                       sec_attribs,     /* process security attrs */
+                       sec_attribs,     /* thread security attrs */
                       TRUE,    /* inherit handles from parent */
                       flags,
                       envblock,/* environment */