summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/syscalls.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/syscalls.cc')
-rw-r--r--winsup/cygwin/syscalls.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
index 006a9b758..2b0bc82f1 100644
--- a/winsup/cygwin/syscalls.cc
+++ b/winsup/cygwin/syscalls.cc
@@ -2054,7 +2054,8 @@ seteuid32 (__uid32_t uid)
/* create_token failed. Try subauthentication. */
debug_printf ("create token failed, try subauthentication.");
cygheap->user.token = subauth (pw_new);
- if (cygheap->user.token == INVALID_HANDLE_VALUE) goto failed;
+ if (cygheap->user.token == INVALID_HANDLE_VALUE)
+ goto failed;
}
}
@@ -2098,6 +2099,11 @@ seteuid32 (__uid32_t uid)
return 0;
failed:
+ if (uid == myself->uid)
+ {
+ system_printf ("special case, returning 0");
+ return 0;
+ }
cygheap->user.token = sav_token;
cygheap->user.impersonated = sav_impersonated;
if (cygheap->user.issetuid ()