summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorBrian Cameron <Brian.Cameron@sun.com>2005-09-07 00:48:11 +0000
committerBrian Cameron <bcameron@src.gnome.org>2005-09-07 00:48:11 +0000
commit9819635acce1283ed0c1b2828eba95a4906522f6 (patch)
tree18734ed95f6a46beb3773590a268dca7cac0c6e0 /gui
parent42a1e22ca742bc2d4e9b5ac79d39209ebbe73474 (diff)
downloadgdm-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.c83
-rw-r--r--gui/gdmcomm.c1
-rw-r--r--gui/gdmdynamic.c1
-rw-r--r--gui/gdmlogin.c4
-rw-r--r--gui/gdmphotosetup.c4
-rw-r--r--gui/gdmsetup.c1
-rw-r--r--gui/greeter/greeter.c1
-rw-r--r--gui/greeter/greeter_canvas_item.c12
-rw-r--r--gui/greeter/greeter_session.c1
-rw-r--r--gui/modules/keymouselistener.c2
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)
{