1 /* 2 * Copyright 2018 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 #ifndef _GNU_SOURCE 11 # define _GNU_SOURCE 12 #endif 13 14 #include <stdlib.h> 15 #include "internal/cryptlib.h" 16 17 char *ossl_safe_getenv(const char *name) 18 { 19 #if defined(__GLIBC__) && defined(__GLIBC_PREREQ) 20 # if __GLIBC_PREREQ(2, 17) 21 # define SECURE_GETENV 22 return secure_getenv(name); 23 # endif 24 #endif 25 26 #ifndef SECURE_GETENV 27 if (OPENSSL_issetugid()) 28 return NULL; 29 return getenv(name); 30 #endif 31 } 32