Module Name:    xsrc
Committed By:   maya
Date:           Thu Dec  5 17:41:10 UTC 2019

Modified Files:
        xsrc/external/mit/MesaLib/dist/src/intel/dev: gen_device_info.c
        xsrc/external/mit/MesaLib/dist/src/loader: loader.c
        xsrc/external/mit/MesaLib/dist/src/mesa/main: context.c
        xsrc/external/mit/MesaLib/dist/src/util: disk_cache.c

Log Message:
Wherever we test for setuid, also test for setgid.

Inspired by a diff to openbsd but with a few more instances.


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 \
    xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c
cvs rdiff -u -r1.1.1.3 -r1.2 \
    xsrc/external/mit/MesaLib/dist/src/loader/loader.c
cvs rdiff -u -r1.7 -r1.8 \
    xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c
diff -u xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c:1.4 xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c:1.5
--- xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c:1.4	Tue Sep 24 19:26:45 2019
+++ xsrc/external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c	Thu Dec  5 17:41:10 2019
@@ -83,7 +83,7 @@ gen_device_name_to_pci_device_id(const c
 int
 gen_get_pci_device_id_override(void)
 {
-   if (geteuid() == getuid()) {
+   if (!issetugid()) {
       const char *devid_override = getenv("INTEL_DEVID_OVERRIDE");
       if (devid_override) {
          const int id = gen_device_name_to_pci_device_id(devid_override);

Index: xsrc/external/mit/MesaLib/dist/src/loader/loader.c
diff -u xsrc/external/mit/MesaLib/dist/src/loader/loader.c:1.1.1.3 xsrc/external/mit/MesaLib/dist/src/loader/loader.c:1.2
--- xsrc/external/mit/MesaLib/dist/src/loader/loader.c:1.1.1.3	Tue Sep 24 17:55:48 2019
+++ xsrc/external/mit/MesaLib/dist/src/loader/loader.c	Thu Dec  5 17:41:10 2019
@@ -445,7 +445,7 @@ loader_get_driver_for_fd(int fd)
     * user's problem, but this allows vc4 simulator to run on an i965 host,
     * and may be useful for some touch testing of i915 on an i965 host.
     */
-   if (geteuid() == getuid()) {
+   if (!issetugid()) {
       driver = getenv("MESA_LOADER_DRIVER_OVERRIDE");
       if (driver)
          return strdup(driver);
@@ -533,7 +533,7 @@ loader_open_driver(const char *driver_na
    const struct __DRIextensionRec **(*get_extensions)(void);
 
    search_paths = NULL;
-   if (geteuid() == getuid() && search_path_vars) {
+   if (!issetugid() && search_path_vars) {
       for (int i = 0; search_path_vars[i] != NULL; i++) {
          search_paths = getenv(search_path_vars[i]);
          if (search_paths)

Index: xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c
diff -u xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c:1.7 xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c:1.8
--- xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c:1.7	Tue Sep 24 19:26:50 2019
+++ xsrc/external/mit/MesaLib/dist/src/mesa/main/context.c	Thu Dec  5 17:41:10 2019
@@ -1240,7 +1240,7 @@ _mesa_initialize_context(struct gl_conte
     */
    if (env_var_as_boolean("MESA_NO_ERROR", false)) {
 #if !defined(_WIN32)
-      if (geteuid() == getuid())
+      if (!issetugid())
 #endif
          ctx->Const.ContextFlags |= GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR;
    }

Index: xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c
diff -u xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c:1.3 xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c:1.4
--- xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c:1.3	Tue Sep 24 19:26:51 2019
+++ xsrc/external/mit/MesaLib/dist/src/util/disk_cache.c	Thu Dec  5 17:41:10 2019
@@ -212,7 +212,7 @@ disk_cache_create(const char *gpu_name, 
    size_t cv_size = sizeof(cache_version);
 
    /* If running as a users other than the real user disable cache */
-   if (geteuid() != getuid())
+   if (issetugid())
       return NULL;
 
    /* A ralloc context for transient data during this invocation. */

Reply via email to