From 03e123e7383ccd70f910a8176e11e965bf6860d4 Mon Sep 17 00:00:00 2001 From: Geoff Voelker Date: Thu, 4 Jan 1996 05:01:44 +0000 Subject: [PATCH] (getuid): Only return root uid if Administrator. (geteuid): Return getuid. --- src/w32.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/w32.c b/src/w32.c index ae7f299dd03..486c7080d66 100644 --- a/src/w32.c +++ b/src/w32.c @@ -628,13 +628,27 @@ request_sigio (void) int getuid () { - return 0; + char buffer[256]; + int size = 256; + + if (!GetUserName (buffer, &size)) + /* Assume all powers upon failure. */ + return 0; + + if (!stricmp ("administrator", buffer)) + return 0; + else + /* A complete fabrication...is there anything to base it on? */ + return 123; } int geteuid () { - return 0; + /* I could imagine arguing for checking to see whether the user is + in the Administrators group and returning a UID of 0 for that + case, but I don't know how wise that would be in the long run. */ + return getuid (); } /* Remove all CR's that are followed by a LF. -- 2.39.2