diff options
author | Brian Cameron <Brian.Cameron@sun.com> | 2005-09-07 00:48:11 +0000 |
---|---|---|
committer | Brian Cameron <bcameron@src.gnome.org> | 2005-09-07 00:48:11 +0000 |
commit | 9819635acce1283ed0c1b2828eba95a4906522f6 (patch) | |
tree | 18734ed95f6a46beb3773590a268dca7cac0c6e0 /gui | |
parent | 42a1e22ca742bc2d4e9b5ac79d39209ebbe73474 (diff) | |
download | gdm-9819635acce1283ed0c1b2828eba95a4906522f6.tar.gz |
Correct memory leaks. Fixes bug #315388, patch by Ray Strode with minor
2005-09-06 Brian Cameron <Brian.Cameron@sun.com>
* daemon/auth.c, daemon/gdm.c, daemon/slave.c,
daemon/verify-pam.c, gui/gdmchooser.c, gui/gdmcomm.c,
gui/gdmdynamic.c, gui/gdmlogin.c, gui/gdmphotosetup.c,
gui/gdmsetup.c, gui/greeter/greeter.c,
gui/greeter/greeter_canvas_item.c,
gui/greeter/greeter_session.c,
gui/modules/keymouselistener.c,
utils/gdm-dmx-reconnect-proxy.c,
vicious-extensions/vc-misc.c: Correct memory leaks.
Fixes bug #315388, patch by Ray Strode with minor
tweaks by myself.
Diffstat (limited to 'gui')
-rw-r--r-- | gui/gdmchooser.c | 83 | ||||
-rw-r--r-- | gui/gdmcomm.c | 1 | ||||
-rw-r--r-- | gui/gdmdynamic.c | 1 | ||||
-rw-r--r-- | gui/gdmlogin.c | 4 | ||||
-rw-r--r-- | gui/gdmphotosetup.c | 4 | ||||
-rw-r--r-- | gui/gdmsetup.c | 1 | ||||
-rw-r--r-- | gui/greeter/greeter.c | 1 | ||||
-rw-r--r-- | gui/greeter/greeter_canvas_item.c | 12 | ||||
-rw-r--r-- | gui/greeter/greeter_session.c | 1 | ||||
-rw-r--r-- | gui/modules/keymouselistener.c | 2 |
10 files changed, 70 insertions, 40 deletions
diff --git a/gui/gdmchooser.c b/gui/gdmchooser.c index 7b7425ea..75485629 100644 --- a/gui/gdmchooser.c +++ b/gui/gdmchooser.c @@ -1341,11 +1341,13 @@ gdm_chooser_add_host (void) qa6 = g_new0 (struct sockaddr_in6, 1); qa6->sin6_family = AF_INET6; - if (have_ipv6 && strlen (name) == 32 && from_hex (name, (char *) &qa6->sin6_addr, strlen (name)) == 0) ; + if (have_ipv6 && strlen (name) == 32 && + from_hex (name, (char *) &qa6->sin6_addr, strlen (name)) == 0) ; else #endif - if (strlen (name) == 8 && from_hex (name, (char *) &qa->sin_addr, strlen (name)) == 0) { + if (strlen (name) == 8 && + from_hex (name, (char *) &qa->sin_addr, strlen (name)) == 0) { #ifdef ENABLE_IPV6 if (have_ipv6) { char tmpaddr[30]; @@ -1380,42 +1382,49 @@ gdm_chooser_add_host (void) if (have_ipv6) { char tmpaddr [30]; - sprintf (tmpaddr, "::ffff:%s", inet_ntoa(((struct sockaddr_in *)result->ai_addr)->sin_addr)); + sprintf (tmpaddr, "::ffff:%s", + inet_ntoa(((struct sockaddr_in *)result->ai_addr)->sin_addr)); inet_pton (AF_INET6, tmpaddr, &qa6->sin6_addr); } } } else #endif - if ((hostent = gethostbyname (name)) != NULL && hostent->h_addrtype == AF_INET && hostent->h_length == 4) { - memmove (&qa->sin_addr, hostent->h_addr, 4); + if ((hostent = gethostbyname (name)) != NULL && + hostent->h_addrtype == AF_INET && hostent->h_length == 4) { + memmove (&qa->sin_addr, hostent->h_addr, 4); } else { - GtkWidget *dialog; - gchar *msg; - - msg = g_strdup_printf (_("Cannot find the host \"%s\". " - "Perhaps you have mistyped it."), - name); - - dialog = ve_hig_dialog_new - (GTK_WINDOW (chooser) /* parent */, - GTK_DIALOG_MODAL /* flags */, - GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - _("Cannot find host"), - msg); - - g_free (msg); - - if (RUNNING_UNDER_GDM) - gdm_wm_center_window (GTK_WINDOW (dialog)); - - gdm_wm_no_login_focus_push (); - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - gdm_wm_no_login_focus_pop (); - return; /* not a valid address */ - } + GtkWidget *dialog; + gchar *msg; + + msg = g_strdup_printf (_("Cannot find the host \"%s\". " + "Perhaps you have mistyped it."), + name); + + dialog = ve_hig_dialog_new + (GTK_WINDOW (chooser) /* parent */, + GTK_DIALOG_MODAL /* flags */, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + _("Cannot find host"), + msg); + + g_free (msg); + + if (RUNNING_UNDER_GDM) + gdm_wm_center_window (GTK_WINDOW (dialog)); + + gdm_wm_no_login_focus_push (); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + gdm_wm_no_login_focus_pop (); + g_free (qa); +#ifdef ENABLE_IPV6 + g_free (qa6); +#endif + return; /* not a valid address */ + } + #ifdef ENABLE_IPV6 if (have_ipv6) { memset (&sock6, 0, sizeof (struct sockaddr_in6)); @@ -1484,6 +1493,10 @@ gdm_chooser_add_host (void) /* empty the text entry to indicate success */ gtk_entry_set_text (GTK_ENTRY (add_entry), ""); + g_free (qa); +#ifdef ENABLE_IPV6 + g_free (qa6); +#endif return; } #ifdef ENABLE_IPV6 @@ -1514,11 +1527,9 @@ gdm_chooser_add_host (void) /* empty the text entry to indicate success */ gtk_entry_set_text (GTK_ENTRY (add_entry), ""); - if (have_ipv6) - g_free (qa); + g_free (qa); #ifdef ENABLE_IPV6 - else - g_free (qa6); + g_free (qa6); #endif } @@ -1577,6 +1588,7 @@ gdm_chooser_abort (const gchar *format, ...) syslog (LOG_ERR, "%s", s); closelog (); + g_free (s); exit (EXIT_FAILURE); } @@ -1593,6 +1605,7 @@ gdm_chooser_warn (const gchar *format, ...) syslog (LOG_ERR, "%s", s); closelog (); + g_free (s); } diff --git a/gui/gdmcomm.c b/gui/gdmcomm.c index fd599ece..0a430e57 100644 --- a/gui/gdmcomm.c +++ b/gui/gdmcomm.c @@ -352,6 +352,7 @@ gdmcomm_get_auth_cookie (void) cmd = g_strdup_printf (GDM_SUP_AUTH_LOCAL " %s", buffer); ret = gdmcomm_call_gdm (cmd, NULL /* auth cookie */, "2.2.4.0", 5); + g_free (cmd); if (ret != NULL && strcmp (ret, "OK") == 0) { g_free (ret); diff --git a/gui/gdmdynamic.c b/gui/gdmdynamic.c index 79dcf6bd..332ea71a 100644 --- a/gui/gdmdynamic.c +++ b/gui/gdmdynamic.c @@ -169,6 +169,7 @@ main (int argc, char *argv[]) cookie = g_strdup(buf); VE_IGNORE_EINTR (fclose (fp)); } + g_free (filename); } ret = gdmcomm_call_gdm (cstr, cookie, version, 5); diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c index 59fc04c0..1122a241 100644 --- a/gui/gdmlogin.c +++ b/gui/gdmlogin.c @@ -1734,8 +1734,10 @@ theme_allowed (const char *theme) return TRUE; for (i = 0; vec[i] != NULL; i++) { - if (strcmp (vec[i], theme) == 0) + if (strcmp (vec[i], theme) == 0) { + g_strfreev (vec); return TRUE; + } } g_strfreev (vec); diff --git a/gui/gdmphotosetup.c b/gui/gdmphotosetup.c index 3113e3b9..96307c52 100644 --- a/gui/gdmphotosetup.c +++ b/gui/gdmphotosetup.c @@ -378,8 +378,10 @@ fill_model (GtkTreeModel *model) path = g_build_filename (facedir, filename, NULL); pixbuf = gdk_pixbuf_new_from_file (path, NULL); - if (! pixbuf) + if (! pixbuf) { + g_free (path); continue; + } gtk_list_store_prepend (store, &iter); diff --git a/gui/gdmsetup.c b/gui/gdmsetup.c index d14d283c..be2bc10e 100644 --- a/gui/gdmsetup.c +++ b/gui/gdmsetup.c @@ -337,6 +337,7 @@ xservers_get_servers (GtkListStore *store) int vt = atoi(key); key = g_strconcat(GDM_KEY_SECTION_SERVERS, "/", key, NULL); cpy = ve_config_get_string (cfg, key); + g_free (key); server = ve_first_word (cpy); options = ve_rest (cpy); diff --git a/gui/greeter/greeter.c b/gui/greeter/greeter.c index efce5564..cc88ce35 100644 --- a/gui/greeter/greeter.c +++ b/gui/greeter/greeter.c @@ -1113,6 +1113,7 @@ get_theme_file (const char *in, char **theme_dir) } config = ve_config_new (info); + g_free (info); s = ve_config_get_translated_string (config, "GdmGreeterTheme/Greeter"); if (s == NULL || s[0] == '\0') diff --git a/gui/greeter/greeter_canvas_item.c b/gui/greeter/greeter_canvas_item.c index 012a5270..5b12b056 100644 --- a/gui/greeter/greeter_canvas_item.c +++ b/gui/greeter/greeter_canvas_item.c @@ -565,8 +565,12 @@ greeter_canvas_item_break_set_string (GreeterItemInfo *info, gnome_canvas_item_set (GNOME_CANVAS_ITEM (canvas_item), textattr, orig, NULL); pango_layout_get_pixel_size (GNOME_CANVAS_TEXT (canvas_item)->layout, width, height); - if (real_item != canvas_item) + if (real_item != canvas_item) { gtk_object_destroy (GTK_OBJECT (canvas_item)); + g_string_free (line, TRUE); + g_string_free (word, TRUE); + g_string_free (str, TRUE); + } return; } @@ -579,8 +583,12 @@ greeter_canvas_item_break_set_string (GreeterItemInfo *info, *width = lwidth; if (height != NULL) *height = lheight; - if (real_item != canvas_item) + if (real_item != canvas_item) { gtk_object_destroy (GTK_OBJECT (canvas_item)); + g_string_free (line, TRUE); + g_string_free (word, TRUE); + g_string_free (str, TRUE); + } return; } diff --git a/gui/greeter/greeter_session.c b/gui/greeter/greeter_session.c index 1544c2db..00664092 100644 --- a/gui/greeter/greeter_session.c +++ b/gui/greeter/greeter_session.c @@ -116,6 +116,7 @@ greeter_session_lookup (const char *saved_session) gchar *firstmsg; gchar *secondmsg; + g_free (session); session = g_strdup (default_session); firstmsg = g_strdup_printf (_("Do you wish to make %s the default for " "future sessions?"), diff --git a/gui/modules/keymouselistener.c b/gui/modules/keymouselistener.c index cee746d8..8d401dcd 100644 --- a/gui/modules/keymouselistener.c +++ b/gui/modules/keymouselistener.c @@ -174,7 +174,7 @@ init_xinput (GdkDisplay *display, GdkWindow *root) device = XOpenDevice (GDK_DISPLAY_XDISPLAY (display), devices[i].id); - for (j=0; j < device->num_classes && number < 40; j++) { + for (j=0; j < device->num_classes && number < 39; j++) { switch (device->classes[j].input_class) { |