[gnome-session] save: fix use of uninitialized variable



commit 06ef3f7e6e8c6b368a65244c49e5b43a4b63437c
Author: Ray Strode <rstrode redhat com>
Date:   Wed Jan 17 10:12:24 2018 -0500

    save: fix use of uninitialized variable
    
    We're trying to access the app id before we look it up.
    
    This commit fixes that.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=790913

 gnome-session/gsm-session-save.c |   28 ++++++++++++++--------------
 1 files changed, 14 insertions(+), 14 deletions(-)
---
diff --git a/gnome-session/gsm-session-save.c b/gnome-session/gsm-session-save.c
index 31b611c..a71a618 100644
--- a/gnome-session/gsm-session-save.c
+++ b/gnome-session/gsm-session-save.c
@@ -61,7 +61,7 @@ save_one_client (char            *id,
 {
         GsmClient  *client;
         GKeyFile   *keyfile;
-        GsmApp     *app;
+        GsmApp     *app = NULL;
         const char *app_id;
         char       *path = NULL;
         char       *filename = NULL;
@@ -74,9 +74,19 @@ save_one_client (char            *id,
 
         local_error = NULL;
 
-        app = (GsmApp *)gsm_store_find (data->app_store,
-                                        (GsmStoreFunc)_app_has_app_id,
-                                        (char *)app_id);
+        app_id = gsm_client_peek_app_id (client);
+        if (!IS_STRING_EMPTY (app_id)) {
+                if (g_str_has_suffix (app_id, ".desktop"))
+                        filename = g_strdup (app_id);
+                else
+                        filename = g_strdup_printf ("%s.desktop", app_id);
+
+                path = g_build_filename (data->dir, filename, NULL);
+
+                app = (GsmApp *)gsm_store_find (data->app_store,
+                                                (GsmStoreFunc)_app_has_app_id,
+                                                (char *)app_id);
+        }
         keyfile = gsm_client_save (client, app, &local_error);
 
         if (keyfile == NULL || local_error) {
@@ -89,16 +99,6 @@ save_one_client (char            *id,
                 goto out;
         }
 
-        app_id = gsm_client_peek_app_id (client);
-        if (!IS_STRING_EMPTY (app_id)) {
-                if (g_str_has_suffix (app_id, ".desktop"))
-                        filename = g_strdup (app_id);
-                else
-                        filename = g_strdup_printf ("%s.desktop", app_id);
-
-                path = g_build_filename (data->dir, filename, NULL);
-        }
-
         if (!path || g_file_test (path, G_FILE_TEST_EXISTS)) {
                 if (filename)
                         g_free (filename);


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