From: Dylan Baker Date: Tue, 22 Jul 2014 18:43:54 +0000 (-0700) Subject: gbm: Search LIBGL_DRIVERS_PATH if GBM_DRIVERS_PATH is not set X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=bf1247936a5c4efd7f7f081b9f9c2a2afba0310f;p=mesa.git gbm: Search LIBGL_DRIVERS_PATH if GBM_DRIVERS_PATH is not set The GBM_DRIVERS_PATH environment variable is not documented, and only used to set the location of gbm drivers, while LIBGL_DRIVERS_PATH is used for everything else, and is documented. Generally this split leads to confusion as to why gbm doesn't work. This patch will read LIBGL_DRIVERS_PATH as a fallback if GBM_DRIVERS_PATH is not set. The comments clearly indicate that using LIBGL_DRIVERS_PATH is preferred over GBM_DRIVERS_PATH. v2: - Use GBM_DRIVERS_PATH as a fallback v3: [jordan.l.justen@intel.com] - Make LIBGL_DRIVERS_PATH the fallback Signed-off-by: Dylan Baker Reviewed-by: Jordan Justen Reviewed-by: Kristian Høgsberg --- diff --git a/src/gbm/backends/dri/gbm_dri.c b/src/gbm/backends/dri/gbm_dri.c index 347bc997f4a..47e62f3caca 100644 --- a/src/gbm/backends/dri/gbm_dri.c +++ b/src/gbm/backends/dri/gbm_dri.c @@ -211,9 +211,19 @@ dri_load_driver(struct gbm_dri_device *dri) char *get_extensions_name; search_paths = NULL; + /* don't allow setuid apps to use LIBGL_DRIVERS_PATH or GBM_DRIVERS_PATH */ if (geteuid() == getuid()) { - /* don't allow setuid apps to use GBM_DRIVERS_PATH */ + /* Read GBM_DRIVERS_PATH first for compatibility, but LIBGL_DRIVERS_PATH + * is recommended over GBM_DRIVERS_PATH. + */ search_paths = getenv("GBM_DRIVERS_PATH"); + + /* Read LIBGL_DRIVERS_PATH if GBM_DRIVERS_PATH was not set. + * LIBGL_DRIVERS_PATH is recommended over GBM_DRIVERS_PATH. + */ + if (search_paths == NULL) { + search_paths = getenv("LIBGL_DRIVERS_PATH"); + } } if (search_paths == NULL) search_paths = DEFAULT_DRIVER_DIR;