summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/conf/conf_api.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/conf/conf_api.c')
-rw-r--r--src/lib/libcrypto/conf/conf_api.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/lib/libcrypto/conf/conf_api.c b/src/lib/libcrypto/conf/conf_api.c
index 21ce4d9fe5..7480dda3d5 100644
--- a/src/lib/libcrypto/conf/conf_api.c
+++ b/src/lib/libcrypto/conf/conf_api.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: conf_api.c,v 1.10 2014/06/12 15:49:28 deraadt Exp $ */ 1/* $OpenBSD: conf_api.c,v 1.11 2014/06/23 22:19:02 deraadt Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -66,6 +66,7 @@
66#include <assert.h> 66#include <assert.h>
67#include <stdlib.h> 67#include <stdlib.h>
68#include <string.h> 68#include <string.h>
69#include <unistd.h>
69#include <openssl/conf.h> 70#include <openssl/conf.h>
70#include <openssl/conf_api.h> 71#include <openssl/conf_api.h>
71 72
@@ -142,7 +143,10 @@ _CONF_get_string(const CONF *conf, const char *section, const char *name)
142 if (v != NULL) 143 if (v != NULL)
143 return (v->value); 144 return (v->value);
144 if (strcmp(section, "ENV") == 0) { 145 if (strcmp(section, "ENV") == 0) {
145 p = getenv(name); 146 if (issetugid() == 0)
147 p = getenv(name);
148 else
149 p = NULL;
146 if (p != NULL) 150 if (p != NULL)
147 return (p); 151 return (p);
148 } 152 }
@@ -154,8 +158,11 @@ _CONF_get_string(const CONF *conf, const char *section, const char *name)
154 return (v->value); 158 return (v->value);
155 else 159 else
156 return (NULL); 160 return (NULL);
157 } else 161 } else {
162 if (issetugid())
163 return (NULL);
158 return (getenv(name)); 164 return (getenv(name));
165 }
159} 166}
160 167
161#if 0 /* There's no way to provide error checking with this function, so 168#if 0 /* There's no way to provide error checking with this function, so