getenv.c revision 340704
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 "cryptlib.h" 16 17char *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