Coverage Report

Created: 2018-08-29 13:53

/src/openssl/crypto/uid.c
Line
Count
Source (jump to first uncovered line)
1
/*
2
 * Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
3
 *
4
 * Licensed under the OpenSSL license (the "License").  You may not use
5
 * this file except in compliance with the License.  You can obtain a copy
6
 * in the file LICENSE in the source distribution or at
7
 * https://www.openssl.org/source/license.html
8
 */
9
10
#include <openssl/crypto.h>
11
#include <openssl/opensslconf.h>
12
13
#if defined(__OpenBSD__) || (defined(__FreeBSD__) && __FreeBSD__ > 2) || defined(__DragonFly__)
14
15
# include OPENSSL_UNISTD
16
17
int OPENSSL_issetugid(void)
18
{
19
    return issetugid();
20
}
21
22
#elif defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_UEFI)
23
24
int OPENSSL_issetugid(void)
25
{
26
    return 0;
27
}
28
29
#else
30
31
# include OPENSSL_UNISTD
32
# include <sys/types.h>
33
34
# if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
35
#  if __GLIBC_PREREQ(2, 16)
36
#   include <sys/auxv.h>
37
#  endif
38
# endif
39
40
int OPENSSL_issetugid(void)
41
0
{
42
0
# ifdef AT_SECURE
43
0
    return getauxval(AT_SECURE) != 0;
44
# else
45
    return getuid() != geteuid() || getgid() != getegid();
46
# endif
47
}
48
#endif