blob: 6aa1a657a9e2ef459ac33951dc3a1ce6fc4aacb9 [file] [log] [blame]
Use secure_getenv instead of getenv for setuid programs
(bnc#694598 CVE-2011-2709 bnc#831805)
import from:
https://build.opensuse.org/package/view_file/openSUSE:Factory/libgssglue/secure-getenv.patch
Upstream-Status: Pending
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
diff --git a/src/g_initialize.c b/src/g_initialize.c
index 200f173..935a9fa 100644
--- a/src/g_initialize.c
+++ b/src/g_initialize.c
@@ -26,6 +26,7 @@
* This function will initialize the gssapi mechglue library
*/
+#define _GNU_SOURCE
#include "mglueP.h"
#include <stdlib.h>
@@ -197,8 +198,7 @@ static void solaris_initialize ()
void *dl;
gss_mechanism (*sym)(void), mech;
- if ((getuid() != geteuid()) ||
- ((filename = getenv("GSSAPI_MECH_CONF")) == NULL))
+ if ((filename = secure_getenv("GSSAPI_MECH_CONF")) == NULL)
filename = MECH_CONF;
if ((conffile = fopen(filename, "r")) == NULL) {
@@ -274,8 +274,7 @@ static void linux_initialize ()
void *dl;
gss_mechanism (*sym)(void), mech;
- if ((getuid() != geteuid()) ||
- ((filename = getenv("GSSAPI_MECH_CONF")) == NULL))
+ if ((filename = secure_getenv("GSSAPI_MECH_CONF")) == NULL)
filename = MECH_CONF;
if ((conffile = fopen(filename, "r")) == NULL) {