From 967cf69d723e9543df0c29e4b268ac01c504223e Mon Sep 17 00:00:00 2001
From: Simon McVittie <smcv@collabora.com>
Date: Mon, 12 Aug 2019 18:18:08 +0100
Subject: [PATCH] library: Guard against not knowing missing or misversioned
 symbols

Signed-off-by: Simon McVittie <smcv@collabora.com>
---
 steam-runtime-tools/library.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/steam-runtime-tools/library.c b/steam-runtime-tools/library.c
index 4294f32b0..686d64b9a 100644
--- a/steam-runtime-tools/library.c
+++ b/steam-runtime-tools/library.c
@@ -440,9 +440,9 @@ srt_check_library_presence (const char *soname,
   JsonParser *parser = NULL;
   JsonNode *node = NULL;
   JsonObject *json;
-  JsonArray *missing_array;
-  JsonArray *misversioned_array;
-  JsonArray *dependencies_array;
+  JsonArray *missing_array = NULL;
+  JsonArray *misversioned_array = NULL;
+  JsonArray *dependencies_array = NULL;
   GError *error = NULL;
   GStrv missing_symbols = NULL;
   GStrv misversioned_symbols = NULL;
@@ -521,7 +521,8 @@ srt_check_library_presence (const char *soname,
 
   absolute_path = g_strdup (json_object_get_string_member (json, "path"));
 
-  missing_array = json_object_get_array_member (json, "missing_symbols");
+  if (json_object_has_member (json, "missing_symbols"))
+    missing_array = json_object_get_array_member (json, "missing_symbols");
   if (missing_array != NULL)
     {
       if (json_array_get_length (missing_array) > 0)
@@ -536,7 +537,8 @@ srt_check_library_presence (const char *soname,
         }
     }
 
-  misversioned_array = json_object_get_array_member (json, "misversioned_symbols");
+  if (json_object_has_member (json, "misversioned_symbols"))
+    misversioned_array = json_object_get_array_member (json, "misversioned_symbols");
   if (misversioned_array != NULL)
     {
       if (json_array_get_length (misversioned_array) > 0)
@@ -551,7 +553,8 @@ srt_check_library_presence (const char *soname,
         }
     }
 
-  dependencies_array = json_object_get_array_member (json, "dependencies");
+  if (json_object_has_member (json, "dependencies"))
+    dependencies_array = json_object_get_array_member (json, "dependencies");
   if (dependencies_array != NULL)
     {
       dependencies = g_new0 (gchar *, json_array_get_length (dependencies_array) + 1);
-- 
GitLab