Index: modules/smb-method.c =================================================================== RCS file: /cvs/gnome/gnome-vfs/modules/smb-method.c,v retrieving revision 1.36 diff -u -p -r1.36 smb-method.c --- modules/smb-method.c 28 Feb 2006 12:27:35 -0000 1.36 +++ modules/smb-method.c 30 Mar 2006 12:55:22 -0000 @@ -190,6 +188,14 @@ string_ndup_nzero (const gchar *s, const return NULL; return g_strndup (s, n); } + +static const char* +string_nzero (const gchar *s) +{ + if (!s || !s[0]) + return NULL; + return s; +} static gboolean string_compare (const char *a, const char *b) @@ -384,10 +390,11 @@ find_cached_server (const char *server_n DEBUG_SMB(("find_cached_server: server: %s, share: %s, domain: %s, user: %s\n", server_name, share_name, domain, username)); - entry.server_name = (char *)server_name; - entry.share_name = (char *)share_name; - entry.domain = (char *)domain; - entry.username = (char *)username; + /* "" must be treated as NULL, because add_cached_server() uses string_dup_nzero() */ + entry.server_name = (char *) string_nzero (server_name); + entry.share_name = (char *) string_nzero (share_name); + entry.domain = (char *) string_nzero (domain); + entry.username = (char *) string_nzero (username); res = g_hash_table_lookup (server_cache, &entry);