Module Name:    xsrc
Committed By:   martin
Date:           Thu Dec 12 12:26:20 UTC 2019

Modified Files:
        xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2 [netbsd-9]:
            egl_dri2.c
        xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri [netbsd-9]:
            gbm_dri.c
        xsrc/external/mit/MesaLib/dist/src/glx [netbsd-9]: dri_common.c

Log Message:
Pull up following revision(s) (requested by maya in ticket #526):

        external/mit/MesaLib/dist/src/intel/dev/gen_device_info.c: revision 1.5
        external/mit/MesaLib/dist/src/loader/loader.c: revision 1.2
        external/mit/MesaLib/dist/src/mesa/main/context.c: revision 1.8
        external/mit/MesaLib/dist/src/util/disk_cache.c: revision 1.4
                (all via patch)
        external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c (apply patch)
        external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c (apply patch)
        external/mit/MesaLib/dist/src/glx/dri_common.c (apply patch)

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.1.1.5 -r1.1.1.5.2.1 \
    xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c
cvs rdiff -u -r1.4 -r1.4.2.1 \
    xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c
cvs rdiff -u -r1.3 -r1.3.2.1 \
    xsrc/external/mit/MesaLib/dist/src/glx/dri_common.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/egl/drivers/dri2/egl_dri2.c
diff -u xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c:1.1.1.5 xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c:1.1.1.5.2.1
--- xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c:1.1.1.5	Sat Jun  1 07:41:07 2019
+++ xsrc/external/mit/MesaLib/dist/src/egl/drivers/dri2/egl_dri2.c	Thu Dec 12 12:26:19 2019
@@ -491,7 +491,7 @@ dri2_open_driver(_EGLDisplay *disp)
    const __DRIextension **(*get_extensions)(void);
 
    search_paths = NULL;
-   if (geteuid() == getuid()) {
+   if (!issetugid()) {
       /* don't allow setuid apps to use LIBGL_DRIVERS_PATH */
       search_paths = getenv("LIBGL_DRIVERS_PATH");
    }

Index: xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c
diff -u xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c:1.4 xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c:1.4.2.1
--- xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c:1.4	Sun Apr  7 19:35:43 2019
+++ xsrc/external/mit/MesaLib/dist/src/gbm/backends/dri/gbm_dri.c	Thu Dec 12 12:26:20 2019
@@ -310,7 +310,7 @@ dri_open_driver(struct gbm_dri_device *d
 
    search_paths = NULL;
    /* don't allow setuid apps to use LIBGL_DRIVERS_PATH or GBM_DRIVERS_PATH */
-   if (geteuid() == getuid()) {
+   if (!issetugid()) {
       /* Read GBM_DRIVERS_PATH first for compatibility, but LIBGL_DRIVERS_PATH
        * is recommended over GBM_DRIVERS_PATH.
        */

Index: xsrc/external/mit/MesaLib/dist/src/glx/dri_common.c
diff -u xsrc/external/mit/MesaLib/dist/src/glx/dri_common.c:1.3 xsrc/external/mit/MesaLib/dist/src/glx/dri_common.c:1.3.2.1
--- xsrc/external/mit/MesaLib/dist/src/glx/dri_common.c:1.3	Sun Mar 10 04:15:51 2019
+++ xsrc/external/mit/MesaLib/dist/src/glx/dri_common.c	Thu Dec 12 12:26:20 2019
@@ -106,7 +106,7 @@ driOpenDriver(const char *driverName)
    glhandle = dlopen(GL_LIB_NAME, RTLD_NOW | RTLD_GLOBAL);
 
    libPaths = NULL;
-   if (geteuid() == getuid()) {
+   if (!issetugid()) {
       /* don't allow setuid apps to use LIBGL_DRIVERS_PATH */
       libPaths = getenv("LIBGL_DRIVERS_PATH");
       if (!libPaths)

Reply via email to