Am Mittwoch, den 14.09.2005, 01:21 +0200 schrieb Christian Neumair: > The attached patch fixes bug 314730 [1] and a potential leak, since the > user variable was not freed if the preceding if branch wasn't reached. > Also, passing free'd pointers to g_strconcat is no good. > > Sidenote: According to the GnomeVFS SMB-Method code, the domain/user > will be figured out correctly even if user is "". By 'if user is ""' I mean the value of the user entry. The last patch potentially introduced a new crasher variant by always freeing the previous user variable. New patch attached. > [1] http://bugzilla.gnome.org/show_bug.cgi?id=314730 -- Christian Neumair <chris gnome-de org>
Index: src/nautilus-connect-server-dialog.c
===================================================================
RCS file: /cvs/gnome/nautilus/src/nautilus-connect-server-dialog.c,v
retrieving revision 1.14
diff -u -p -r1.14 nautilus-connect-server-dialog.c
--- src/nautilus-connect-server-dialog.c 27 May 2005 08:46:04 -0000 1.14
+++ src/nautilus-connect-server-dialog.c 14 Sep 2005 09:09:59 -0000
@@ -212,14 +212,20 @@ connect_to_server (NautilusConnectServer
g_free (t);
}
if (dialog->details->domain_entry->parent != NULL) {
-
free_domain = TRUE;
domain = gtk_editable_get_chars (GTK_EDITABLE (dialog->details->domain_entry), 0, -1);
if (strlen (domain) != 0) {
- g_free (user);
- user = g_strconcat (domain , ";" , user, NULL);
+ t = user;
+
+ user = g_strconcat (domain , ";" , t, NULL);
+
+ if (free_user) {
+ g_free (t);
+ }
+
+ free_user = TRUE;
}
}
Attachment:
signature.asc
Description: This is a digitally signed message part