1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- From a80d2fe3bcc2c14c6e1434615d1be38924b668ea Mon Sep 17 00:00:00 2001
- From: Carl Zhang <carl.zhang@intel.com>
- Date: Mon, 30 Dec 2019 04:38:43 -0500
- Subject: [PATCH] adjust call sequence to ensure authenticate operation is
- executed
- fixes #355
- Downloaded from upstream PR: https://github.com/intel/libva/pull/356
- Signed-off-by: Carl Zhang <carl.zhang@intel.com>
- Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
- ---
- va/va.c | 25 ++++++++++++++++---------
- 1 file changed, 16 insertions(+), 9 deletions(-)
- diff --git a/va/va.c b/va/va.c
- index cfcabff..7f014a1 100644
- --- a/va/va.c
- +++ b/va/va.c
- @@ -367,11 +367,23 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
- VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
- const char *driver_name_env = NULL;
- VADriverContextP ctx;
- + VAStatus status = VA_STATUS_SUCCESS;
-
- ctx = CTX(dpy);
- + if (pDisplayContext->vaGetDriverNameByIndex) {
- + /*if vaGetDriverNameByIndex is implemented*/
- + status = pDisplayContext->vaGetDriverNameByIndex(pDisplayContext, driver_name, candidate_index);
- + } else {
- + if (candidate_index == 0)
- + status = pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
- + else
- + status = VA_STATUS_ERROR_INVALID_PARAMETER;
- + }
- driver_name_env = getenv("LIBVA_DRIVER_NAME");
- /*if user set driver name by vaSetDriverName */
- if (ctx->override_driver_name){
- + if(*driver_name)
- + free(*driver_name);
- *driver_name = strdup(ctx->override_driver_name);
- if (!(*driver_name)) {
- va_errorMessage(dpy, "va_getDriverNameByIndex failed with %s, out of memory\n",vaErrorStr(VA_STATUS_ERROR_ALLOCATION_FAILED));
- @@ -380,19 +392,14 @@ static VAStatus va_getDriverNameByIndex(VADisplay dpy, char **driver_name, int c
- va_infoMessage(dpy, "User requested driver '%s'\n", *driver_name);
- return VA_STATUS_SUCCESS;
- } else if (driver_name_env && (geteuid() == getuid())) {
- + if(*driver_name)
- + free(*driver_name);
- /*if user set driver name by environment variable*/
- *driver_name = strdup(driver_name_env);
- va_infoMessage(dpy, "User environment variable requested driver '%s'\n", *driver_name);
- return VA_STATUS_SUCCESS;
- - } else if (pDisplayContext->vaGetDriverNameByIndex) {
- - /*if vaGetDriverNameByIndex is implemented*/
- - return pDisplayContext->vaGetDriverNameByIndex(pDisplayContext, driver_name, candidate_index);
- - } else {
- - if (candidate_index == 0)
- - return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
- - else
- - return VA_STATUS_ERROR_INVALID_PARAMETER;
- - }
- + }
- + return status;
- }
-
- static char *va_getDriverPath(const char *driver_dir, const char *driver_name)
|