aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-06-11 02:22:02 +0000
committerChristopher Faylor <me@cgf.cx>2002-06-11 02:22:02 +0000
commitd5377829a83b0e7a6989bbc19fc17dbf42d74bb2 (patch)
treedd282ed9ef8c6b81af012171df1c4c2def2ad64f
parent380aaf2d2ced0e305e91c85d8bda2de6092b424f (diff)
downloadnewlib-d5377829a83b0e7a6989bbc19fc17dbf42d74bb2.zip
newlib-d5377829a83b0e7a6989bbc19fc17dbf42d74bb2.tar.gz
newlib-d5377829a83b0e7a6989bbc19fc17dbf42d74bb2.tar.bz2
* spawn.cc (spawn_guts): Define sec_attribs and call sec_user_nih() only once.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/spawn.cc20
2 files changed, 14 insertions, 11 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 70088c0..f21312d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2002-06-09 Pierre Humblet <pierre.humblet@ieee.org>
+
+ * spawn.cc (spawn_guts): Define sec_attribs and call sec_user_nih()
+ only once.
+
2002-06-10 Christopher Faylor <cgf@redhat.com>
* Makefile.in: Ensure that -MD gets added to CFLAGS regardless of
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index a63adc6..c1934b1 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -623,7 +623,7 @@ spawn_guts (const char * prog_arg, const char *const *argv,
cygbench ("spawn-guts");
if (!cygheap->user.impersonated || cygheap->user.token == INVALID_HANDLE_VALUE)
{
-
+ PSECURITY_ATTRIBUTES sec_attribs = sec_user_nih (sa_buf);
ciresrv.moreinfo->uid = getuid32 ();
/* FIXME: This leaks a handle in the CreateProcessAsUser case since the
child process doesn't know about cygwin_mount_h. */
@@ -631,14 +631,12 @@ spawn_guts (const char * prog_arg, const char *const *argv,
newheap = cygheap_setup_for_child (&ciresrv, cygheap->fdtab.need_fixup_before ());
rc = CreateProcess (runpath, /* image name - with full path */
one_line.buf, /* what was passed to exec */
- /* process security attrs */
- sec_user_nih (sa_buf),
- /* thread security attrs */
- sec_user_nih (sa_buf),
- TRUE, /* inherit handles from parent */
+ sec_attribs, /* process security attrs */
+ sec_attribs, /* thread security attrs */
+ TRUE, /* inherit handles from parent */
flags,
- envblock,/* environment */
- 0, /* use current drive/directory */
+ envblock, /* environment */
+ 0, /* use current drive/directory */
&si,
&pi);
}
@@ -688,10 +686,10 @@ spawn_guts (const char * prog_arg, const char *const *argv,
one_line.buf, /* what was passed to exec */
sec_attribs, /* process security attrs */
sec_attribs, /* thread security attrs */
- TRUE, /* inherit handles from parent */
+ TRUE, /* inherit handles from parent */
flags,
- envblock,/* environment */
- 0, /* use current drive/directory */
+ envblock, /* environment */
+ 0, /* use current drive/directory */
&si,
&pi);
/* Restore impersonation. In case of _P_OVERLAY this isn't