5de6bbd
diff -up openssl-1.1.0g/crypto/conf/conf_api.c.secure-getenv openssl-1.1.0g/crypto/conf/conf_api.c
5de6bbd
--- openssl-1.1.0g/crypto/conf/conf_api.c.secure-getenv	2017-11-02 15:29:02.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/conf/conf_api.c	2017-11-03 16:12:31.826265323 +0100
5de6bbd
@@ -9,6 +9,8 @@
5de6bbd
 
5de6bbd
 /* Part of the code in here was originally in conf.c, which is now removed */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include <stdlib.h>
5de6bbd
 #include <string.h>
5de6bbd
 #include <openssl/conf.h>
5de6bbd
@@ -82,7 +84,7 @@ char *_CONF_get_string(const CONF *conf,
5de6bbd
             if (v != NULL)
5de6bbd
                 return (v->value);
5de6bbd
             if (strcmp(section, "ENV") == 0) {
5de6bbd
-                p = getenv(name);
5de6bbd
+                p = secure_getenv(name);
5de6bbd
                 if (p != NULL)
5de6bbd
                     return (p);
5de6bbd
             }
5de6bbd
@@ -95,7 +97,7 @@ char *_CONF_get_string(const CONF *conf,
5de6bbd
         else
5de6bbd
             return (NULL);
5de6bbd
     } else
5de6bbd
-        return (getenv(name));
5de6bbd
+        return (secure_getenv(name));
5de6bbd
 }
5de6bbd
 
5de6bbd
 static unsigned long conf_value_hash(const CONF_VALUE *v)
5de6bbd
diff -up openssl-1.1.0g/crypto/conf/conf_mod.c.secure-getenv openssl-1.1.0g/crypto/conf/conf_mod.c
5de6bbd
--- openssl-1.1.0g/crypto/conf/conf_mod.c.secure-getenv	2017-11-02 15:29:02.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/conf/conf_mod.c	2017-11-03 16:12:31.827265347 +0100
5de6bbd
@@ -7,6 +7,8 @@
5de6bbd
  * https://www.openssl.org/source/license.html
5de6bbd
  */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include <stdio.h>
5de6bbd
 #include <ctype.h>
5de6bbd
 #include <openssl/crypto.h>
5de6bbd
@@ -478,7 +480,7 @@ char *CONF_get1_default_config_file(void
5de6bbd
     char *file;
5de6bbd
     int len;
5de6bbd
 
5de6bbd
-    file = getenv("OPENSSL_CONF");
5de6bbd
+    file = secure_getenv("OPENSSL_CONF");
5de6bbd
     if (file)
5de6bbd
         return OPENSSL_strdup(file);
5de6bbd
 
5de6bbd
diff -up openssl-1.1.0g/crypto/engine/eng_list.c.secure-getenv openssl-1.1.0g/crypto/engine/eng_list.c
5de6bbd
--- openssl-1.1.0g/crypto/engine/eng_list.c.secure-getenv	2017-11-02 15:29:03.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/engine/eng_list.c	2017-11-03 16:12:31.827265347 +0100
5de6bbd
@@ -13,6 +13,8 @@
5de6bbd
  * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project.
5de6bbd
  */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include "eng_int.h"
5de6bbd
 
5de6bbd
 /*
5de6bbd
@@ -322,7 +324,7 @@ ENGINE *ENGINE_by_id(const char *id)
5de6bbd
      * Prevent infinite recursion if we're looking for the dynamic engine.
5de6bbd
      */
5de6bbd
     if (strcmp(id, "dynamic")) {
5de6bbd
-        if ((load_dir = getenv("OPENSSL_ENGINES")) == 0)
5de6bbd
+        if ((load_dir = secure_getenv("OPENSSL_ENGINES")) == 0)
5de6bbd
             load_dir = ENGINESDIR;
5de6bbd
         iterator = ENGINE_by_id("dynamic");
5de6bbd
         if (!iterator || !ENGINE_ctrl_cmd_string(iterator, "ID", id, 0) ||
5de6bbd
diff -up openssl-1.1.0g/crypto/rand/randfile.c.secure-getenv openssl-1.1.0g/crypto/rand/randfile.c
5de6bbd
--- openssl-1.1.0g/crypto/rand/randfile.c.secure-getenv	2017-11-02 15:29:03.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/rand/randfile.c	2017-11-03 16:12:31.827265347 +0100
5de6bbd
@@ -7,6 +7,8 @@
5de6bbd
  * https://www.openssl.org/source/license.html
5de6bbd
  */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include "internal/cryptlib.h"
5de6bbd
 
5de6bbd
 #include <errno.h>
5de6bbd
@@ -317,10 +319,10 @@ const char *RAND_file_name(char *buf, si
5de6bbd
     if (OPENSSL_issetugid() != 0) {
5de6bbd
         use_randfile = 0;
5de6bbd
     } else {
5de6bbd
-        s = getenv("RANDFILE");
5de6bbd
+        s = secure_getenv("RANDFILE");
5de6bbd
         if (s == NULL || *s == '\0') {
5de6bbd
             use_randfile = 0;
5de6bbd
-            s = getenv("HOME");
5de6bbd
+            s = secure_getenv("HOME");
5de6bbd
         }
5de6bbd
     }
5de6bbd
 #endif
5de6bbd
diff -up openssl-1.1.0g/crypto/x509/by_dir.c.secure-getenv openssl-1.1.0g/crypto/x509/by_dir.c
5de6bbd
--- openssl-1.1.0g/crypto/x509/by_dir.c.secure-getenv	2017-11-02 15:29:04.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/x509/by_dir.c	2017-11-03 16:12:31.827265347 +0100
5de6bbd
@@ -7,6 +7,8 @@
5de6bbd
  * https://www.openssl.org/source/license.html
5de6bbd
  */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include <stdio.h>
5de6bbd
 #include <time.h>
5de6bbd
 #include <errno.h>
5de6bbd
@@ -78,7 +80,7 @@ static int dir_ctrl(X509_LOOKUP *ctx, in
5de6bbd
     switch (cmd) {
5de6bbd
     case X509_L_ADD_DIR:
5de6bbd
         if (argl == X509_FILETYPE_DEFAULT) {
5de6bbd
-            dir = (char *)getenv(X509_get_default_cert_dir_env());
5de6bbd
+            dir = (char *)secure_getenv(X509_get_default_cert_dir_env());
5de6bbd
             if (dir)
5de6bbd
                 ret = add_cert_dir(ld, dir, X509_FILETYPE_PEM);
5de6bbd
             else
5de6bbd
diff -up openssl-1.1.0g/crypto/x509/by_file.c.secure-getenv openssl-1.1.0g/crypto/x509/by_file.c
5de6bbd
--- openssl-1.1.0g/crypto/x509/by_file.c.secure-getenv	2017-11-02 15:29:04.000000000 +0100
5de6bbd
+++ openssl-1.1.0g/crypto/x509/by_file.c	2017-11-03 16:14:13.230649686 +0100
5de6bbd
@@ -7,6 +7,8 @@
5de6bbd
  * https://www.openssl.org/source/license.html
5de6bbd
  */
5de6bbd
 
5de6bbd
+/* for secure_getenv */
5de6bbd
+#define _GNU_SOURCE
5de6bbd
 #include <stdio.h>
5de6bbd
 #include <time.h>
5de6bbd
 #include <errno.h>
5de6bbd
@@ -47,7 +49,7 @@ static int by_file_ctrl(X509_LOOKUP *ctx
5de6bbd
     switch (cmd) {
5de6bbd
     case X509_L_FILE_LOAD:
5de6bbd
         if (argl == X509_FILETYPE_DEFAULT) {
5de6bbd
-            file = getenv(X509_get_default_cert_file_env());
5de6bbd
+            file = secure_getenv(X509_get_default_cert_file_env());
5de6bbd
             if (file)
5de6bbd
                 ok = (X509_load_cert_crl_file(ctx, file,
5de6bbd
                                               X509_FILETYPE_PEM) != 0);