diff options
Diffstat (limited to 'src/lib/libcrypto/uid.c')
| -rw-r--r-- | src/lib/libcrypto/uid.c | 30 | 
1 files changed, 16 insertions, 14 deletions
| diff --git a/src/lib/libcrypto/uid.c b/src/lib/libcrypto/uid.c index b1fd52bada..fcfa05ce0c 100644 --- a/src/lib/libcrypto/uid.c +++ b/src/lib/libcrypto/uid.c | |||
| @@ -60,30 +60,32 @@ | |||
| 60 | 60 | ||
| 61 | #include OPENSSL_UNISTD | 61 | #include OPENSSL_UNISTD | 
| 62 | 62 | ||
| 63 | int OPENSSL_issetugid(void) | 63 | int | 
| 64 | { | 64 | OPENSSL_issetugid(void) | 
| 65 | { | ||
| 65 | return issetugid(); | 66 | return issetugid(); | 
| 66 | } | 67 | } | 
| 67 | 68 | ||
| 68 | #elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) | 69 | #elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) | 
| 69 | 70 | ||
| 70 | int OPENSSL_issetugid(void) | 71 | int | 
| 71 | { | 72 | OPENSSL_issetugid(void) | 
| 73 | { | ||
| 72 | return 0; | 74 | return 0; | 
| 73 | } | 75 | } | 
| 74 | 76 | ||
| 75 | #else | 77 | #else | 
| 76 | 78 | ||
| 77 | #include OPENSSL_UNISTD | 79 | #include OPENSSL_UNISTD | 
| 78 | #include <sys/types.h> | 80 | #include <sys/types.h> | 
| 79 | 81 | ||
| 80 | int OPENSSL_issetugid(void) | 82 | int | 
| 81 | { | 83 | OPENSSL_issetugid(void) | 
| 82 | if (getuid() != geteuid()) return 1; | 84 | { | 
| 83 | if (getgid() != getegid()) return 1; | 85 | if (getuid() | 
| 86 | != geteuid()) return 1; | ||
| 87 | if (getgid() | ||
| 88 | != getegid()) return 1; | ||
| 84 | return 0; | 89 | return 0; | 
| 85 | } | 90 | } | 
| 86 | #endif | 91 | #endif | 
| 87 | |||
| 88 | |||
| 89 | |||
