[gnome-builder/gnome-builder-3-40] flatpak: fix null dereference in sdk_extensions list



commit 121302b159ffe6c3770e331c2c183d7f2c401b14
Author: Christian Hergert <chergert redhat com>
Date:   Sat Apr 24 16:37:00 2021 -0700

    flatpak: fix null dereference in sdk_extensions list

 src/plugins/flatpak/gbp-flatpak-runtime-provider.c | 33 ++++++++++++----------
 1 file changed, 18 insertions(+), 15 deletions(-)
---
diff --git a/src/plugins/flatpak/gbp-flatpak-runtime-provider.c 
b/src/plugins/flatpak/gbp-flatpak-runtime-provider.c
index dc92e14d8..49a7211a8 100644
--- a/src/plugins/flatpak/gbp-flatpak-runtime-provider.c
+++ b/src/plugins/flatpak/gbp-flatpak-runtime-provider.c
@@ -841,23 +841,26 @@ gbp_flatpak_runtime_provider_bootstrap_async (IdeRuntimeProvider  *provider,
       /* Resolve the extensions ASAP so we can show them in the dialog and also
        * ensure that we have the right extension for the SDK.
        */
-      for (guint i = 0; sdk_extensions[i]; i++)
+      if (sdk_extensions != NULL)
         {
-          g_autofree char *resolved = gbp_flatpak_application_addin_resolve_extension (addin, sdk_full, 
sdk_extensions[i]);
-
-          if (resolved == NULL)
-            {
-              gbp_flatpak_install_dialog_add_runtime (dialog, sdk_extensions[i]);
-            }
-          else
+          for (guint i = 0; sdk_extensions[i]; i++)
             {
-              g_autofree char *resolved_id = NULL;
-              g_autofree char *resolved_arch = NULL;
-              g_autofree char *resolved_branch = NULL;
-
-              if (gbp_flatpak_split_id (resolved, &resolved_id, &resolved_arch, &resolved_branch) &&
-                  !gbp_flatpak_application_addin_has_runtime (addin, resolved_id, resolved_arch, 
resolved_branch))
-                gbp_flatpak_install_dialog_add_runtime (dialog, resolved);
+              g_autofree char *resolved = gbp_flatpak_application_addin_resolve_extension (addin, sdk_full, 
sdk_extensions[i]);
+
+              if (resolved == NULL)
+                {
+                  gbp_flatpak_install_dialog_add_runtime (dialog, sdk_extensions[i]);
+                }
+              else
+                {
+                  g_autofree char *resolved_id = NULL;
+                  g_autofree char *resolved_arch = NULL;
+                  g_autofree char *resolved_branch = NULL;
+
+                  if (gbp_flatpak_split_id (resolved, &resolved_id, &resolved_arch, &resolved_branch) &&
+                      !gbp_flatpak_application_addin_has_runtime (addin, resolved_id, resolved_arch, 
resolved_branch))
+                    gbp_flatpak_install_dialog_add_runtime (dialog, resolved);
+                }
             }
         }
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]