crypto/uid.c: use own macro as guard rather than AT_SECURE
authorRichard Levitte <levitte@openssl.org>
Thu, 20 Dec 2018 09:17:38 +0000 (10:17 +0100)
committerRichard Levitte <levitte@openssl.org>
Wed, 16 Jan 2019 05:21:32 +0000 (06:21 +0100)
It turns out that AT_SECURE may be defined through other means than
our inclusion of sys/auxv.h, so to be on the safe side, we define our
own guard and use that to determine if getauxval() should be used or
not.

Fixes #7932

Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/7933)

(cherry picked from commit aefb980c45134d84f1757de1a9c61d699c8a7e33)

crypto/uid.c

index f7ae2610b3607d80997dfa166d64060ad90ed5fe..e1c08a7f265b1286d5d95c5973f90b5f141bdbaf 100644 (file)
@@ -34,12 +34,13 @@ int OPENSSL_issetugid(void)
 # if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
 #  if __GLIBC_PREREQ(2, 16)
 #   include <sys/auxv.h>
+#   define OSSL_IMPLEMENT_GETAUXVAL
 #  endif
 # endif
 
 int OPENSSL_issetugid(void)
 {
-# ifdef AT_SECURE
+# ifdef OSSL_IMPLEMENT_GETAUXVAL
     return getauxval(AT_SECURE) != 0;
 # else
     return getuid() != geteuid() || getgid() != getegid();