diff options
| author | Jon Ashburn <jon@lunarg.com> | 2016-04-04 13:52:53 -0600 |
|---|---|---|
| committer | Jon Ashburn <jon@lunarg.com> | 2016-04-04 16:16:24 -0600 |
| commit | b78c251d720b75436238bcd44dc366ba49e6d9ed (patch) | |
| tree | 862b7e5c532c049a2b4b16dbc925841b5b2244d0 /loader/loader.c | |
| parent | 8d26fc88152cfe3755dbd7ea6a0e399c2921b307 (diff) | |
| download | usermoji-b78c251d720b75436238bcd44dc366ba49e6d9ed.tar.xz | |
loader: ghlvl #204, Use __secure_getenv if secure_getenv is unavailable
Also add group id check to getenv suid check in loader.
Change-Id: Icbc08258498f893ee5fce144c043bdc6bd8e5423
Diffstat (limited to 'loader/loader.c')
| -rw-r--r-- | loader/loader.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/loader/loader.c b/loader/loader.c index 8fff9df0..b4dbe553 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -52,6 +52,12 @@ #include "cJSON.h" #include "murmurhash.h" +#if defined(__GNUC__) +# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 17) +# define secure_getenv __secure_getenv +# endif +#endif + static loader_platform_dl_handle loader_add_layer_lib(const struct loader_instance *inst, const char *chain_type, struct loader_layer_properties *layer_prop); @@ -2237,7 +2243,7 @@ static void loader_get_manifest_files(const struct loader_instance *inst, if (env_override != NULL && (override = loader_getenv(env_override))) { #if !defined(_WIN32) - if (geteuid() != getuid()) { + if (geteuid() != getuid() || getegid() != getgid()) { /* Don't allow setuid apps to use the env var: */ loader_free_getenv(override); override = NULL; |
