libGL: Fall back to DEFAULT_DRIVER_DIR properly.
authorKristian Høgsberg <krh@redhat.com>
Sun, 9 Mar 2008 20:21:29 +0000 (16:21 -0400)
committerKristian Høgsberg <krh@redhat.com>
Sun, 9 Mar 2008 20:29:17 +0000 (16:29 -0400)
After commit 6fd82f6fbd208dc7b1839ea408a5fb28589ee622, we would
overwrite the libPath default value with NULL if libGL was running
non-setuid and none of the env vars were set.

Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for spotting it.

src/glx/x11/dri_glx.c

index fc1c91d31f3cd79d3a514adffcb819efaf077124..6c915d800e0a5d9d3d718336a61f1ecb07afdc43 100644 (file)
@@ -145,13 +145,14 @@ static void *OpenDriver(const char *driverName)
    /* Attempt to make sure libGL symbols will be visible to the driver */
    glhandle = dlopen("libGL.so.1", RTLD_NOW | RTLD_GLOBAL);
 
-   libPaths = DEFAULT_DRIVER_DIR;
    if (geteuid() == getuid()) {
       /* don't allow setuid apps to use LIBGL_DRIVERS_PATH */
       libPaths = getenv("LIBGL_DRIVERS_PATH");
       if (!libPaths)
          libPaths = getenv("LIBGL_DRIVERS_DIR"); /* deprecated */
    }
+   if (libPaths == NULL)
+       libPaths = DEFAULT_DRIVER_DIR;
 
    handle = NULL;
    for (p = libPaths; *p; p = next) {