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 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 @@ -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) {