From c00a20b3c19b90f7f9fbd4007e02ba4ce20e975b Mon Sep 17 00:00:00 2001 From: Gwenole Beauchesne Date: Wed, 8 Jul 2009 07:50:40 +0000 Subject: [PATCH] Fix va_DisplayContextGetDriverName() to check for LIBVA_DRIVER_NAME first. Signed-off-by: Austin Yuan --- src/x11/va_x11.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/x11/va_x11.c b/src/x11/va_x11.c index 1e53401..cfb88be 100644 --- a/src/x11/va_x11.c +++ b/src/x11/va_x11.c @@ -206,30 +206,23 @@ static VAStatus va_DisplayContextGetDriverName ( int driver_minor; int driver_patch; Bool result = True; - char *x_driver_name = NULL; + char *driver_name_env; if (driver_name) *driver_name = NULL; - - vaStatus = va_DRI2GetDriverName(pDisplayContext, driver_name); - if (vaStatus != VA_STATUS_SUCCESS) - vaStatus = va_DRIGetDriverName(pDisplayContext, driver_name); - if ((vaStatus == VA_STATUS_SUCCESS) + if ((driver_name_env = getenv("LIBVA_DRIVER_NAME")) != NULL && geteuid() == getuid()) { /* don't allow setuid apps to use LIBVA_DRIVER_NAME */ - if (getenv("LIBVA_DRIVER_NAME")) - { - /* For easier debugging */ - if (*driver_name) - XFree(*driver_name); - - *driver_name = strdup(getenv("LIBVA_DRIVER_NAME")); - return VA_STATUS_SUCCESS; - } + *driver_name = strdup(driver_name_env); + return VA_STATUS_SUCCESS; } - + + vaStatus = va_DRI2GetDriverName(pDisplayContext, driver_name); + if (vaStatus != VA_STATUS_SUCCESS) + vaStatus = va_DRIGetDriverName(pDisplayContext, driver_name); + return vaStatus; } -- 2.7.4