diff options
author | dtucker <dtucker> | 2010-11-05 03:47:01 +0000 |
---|---|---|
committer | dtucker <dtucker> | 2010-11-05 03:47:01 +0000 |
commit | e309d72a1dfc5a2c3c3e6bb43fbd66d65b0a02b2 (patch) | |
tree | 777f6857fd23e7bef5085ddf5d9fc303921d60d8 /platform.c | |
parent | 7ae36c743f1e078e458a8caa0e58ab306807fbfb (diff) | |
download | openssh-e309d72a1dfc5a2c3c3e6bb43fbd66d65b0a02b2.tar.gz |
- (dtucker) [platform.c platform.h session.c] Move the Cygwin special-case
check into platform.c
Diffstat (limited to 'platform.c')
-rw-r--r-- | platform.c | 18 |
1 files changed, 17 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $Id: platform.c,v 1.13 2010/11/05 02:32:53 dtucker Exp $ */ +/* $Id: platform.c,v 1.14 2010/11/05 03:47:01 dtucker Exp $ */ /* * Copyright (c) 2006 Darren Tucker. All rights reserved. @@ -17,6 +17,10 @@ */ #include "config.h" + +#include <sys/types.h> +#include <unistd.h> + #include "platform.h" #include "openbsd-compat/openbsd-compat.h" @@ -59,6 +63,18 @@ platform_post_fork_child(void) #endif } +/* return 1 if we are running with privilege to swap UIDs, 0 otherwise */ +int +platform_privileged_uidswap(void) +{ +#ifdef HAVE_CYGWIN + /* uid 0 is not special on Cygwin so always try */ + return 1; +#else + return (getuid() == 0 || geteuid() == 0); +#endif +} + /* * This gets called before switching UIDs, and is called even when sshd is * not running as root. |