From 66f68a39c3c486fc91dc50c7e0306eed5451269f Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Mon, 18 May 2020 13:40:24 +0100
Subject: [PATCH] runtime: Only add successful VA-API details to list

If we failed to bind the driver into the container, then we don't
want to try to use it later.

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 src/runtime.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/runtime.c b/src/runtime.c
index 0041e5613..e9a9a5662 100644
--- a/src/runtime.c
+++ b/src/runtime.c
@@ -1409,8 +1409,7 @@ pv_runtime_use_host_graphics_stack (PvRuntime *self,
 
           for (icd_iter = va_api_drivers, j = 0; icd_iter != NULL; icd_iter = icd_iter->next, j++)
             {
-              IcdDetails *details = icd_details_new (icd_iter->data);
-              g_ptr_array_add (va_api_icd_details, details);
+              g_autoptr(IcdDetails) details = icd_details_new (icd_iter->data);
               details->resolved_library = srt_va_api_driver_resolve_library_path (details->icd);
               g_assert (details->resolved_library != NULL);
               g_assert (g_path_is_absolute (details->resolved_library));
@@ -1428,6 +1427,8 @@ pv_runtime_use_host_graphics_stack (PvRuntime *self,
                              details,
                              error))
                 return FALSE;
+
+              g_ptr_array_add (va_api_icd_details, g_steal_pointer (&details));
             }
 
           libc = g_build_filename (libdir_on_host, "libc.so.6", NULL);
-- 
GitLab