]> Dogcows Code - chaz/tint2/blobdiff - src/launcher/xsettings-client.c
Fix possible double free in launcher
[chaz/tint2] / src / launcher / xsettings-client.c
index be569e6d2d339aa7597f58782e481ab87af8901e..a66c4b704b82d3743e08435f0910b8ddff531ec8 100644 (file)
@@ -54,7 +54,7 @@ void xsettings_notify_cb (const char *name, XSettingsAction action, XSettingsSet
                        if (icon_theme_name) {
                                if (strcmp(icon_theme_name, setting->data.v_string) == 0)
                                        return;
-                               g_free(icon_theme_name);
+                               free(icon_theme_name);
                        }
                        icon_theme_name = strdup(setting->data.v_string);
                        
@@ -412,25 +412,18 @@ XSettingsClient *xsettings_client_new (Display *display, int screen, XSettingsNo
        client->manager_window = None;
        client->settings = NULL;
 
-       XGrabServer (server.dsp);
-       client->manager_window = XGetSelectionOwner (server.dsp, server.atom._XSETTINGS_SCREEN);
-       if (client->manager_window != None)
-               XSelectInput (server.dsp, client->manager_window, PropertyChangeMask | StructureNotifyMask);
-       XUngrabServer (client->display);
-       XFlush (client->display);
-       
-       if (client->manager_window == None) {
-               printf("NO XSETTINGS manager, tint2 use config 'launcher_icon_theme'.\n");
-               free (client);
-               return NULL;
-       }
-
        if (client->watch)
                client->watch (RootWindow (display, screen), True, StructureNotifyMask, client->cb_data);
 
        check_manager_window (client);
 
-       return client;
+       if (client->manager_window == None) {
+               printf("NO XSETTINGS manager, tint2 use config 'launcher_icon_theme'.\n");
+               free (client);
+               return NULL;
+       }
+       else
+               return client;
 }
 
 
This page took 0.024998 seconds and 4 git commands to generate.