* dtable.cc (dtable::vfork_child_dup): Revert impersonation

before duplicating fhandler.
This commit is contained in:
Corinna Vinschen 2001-10-31 12:03:45 +00:00
parent 34397675de
commit 928eca7a58
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2001-10-31 Corinna Vinschen <corinna@vinschen.de>
* dtable.cc (dtable::vfork_child_dup): Revert impersonation
before duplicating fhandler.
2001-10-30 Christopher Faylor <cgf@redhat.com>
* exceptions.cc (signal_exit): Weight the odds against the main thread

View File

@ -559,6 +559,10 @@ dtable::vfork_child_dup ()
newtable = (fhandler_base **) ccalloc (HEAP_ARGV, size, sizeof (fds[0]));
int res = 1;
/* Remove impersonation */
if (cygheap->user.impersonated && cygheap->user.token != INVALID_HANDLE_VALUE)
RevertToSelf ();
for (size_t i = 0; i < size; i++)
if (not_open (i))
continue;
@ -571,6 +575,10 @@ dtable::vfork_child_dup ()
goto out;
}
/* Restore impersonation */
if (cygheap->user.impersonated && cygheap->user.token != INVALID_HANDLE_VALUE)
ImpersonateLoggedOnUser (cygheap->user.token);
fds_on_hold = fds;
fds = newtable;