diff libpurple/certificate.c @ 19010:0d4b84820390

- Fix overzealous escaping cause by ancestor revision
author William Ehlhardt <williamehlhardt@gmail.com>
date Mon, 09 Jul 2007 04:58:14 +0000
parents b64aa0222a7a
children b1090cbfc286
line wrap: on
line diff
--- a/libpurple/certificate.c	Mon Jul 09 04:45:37 2007 +0000
+++ b/libpurple/certificate.c	Mon Jul 09 04:58:14 2007 +0000
@@ -207,23 +207,29 @@
 gchar *
 purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id)
 {
-	gchar *path, *path2;
+	gchar *path;
+	gchar *esc_scheme_name, *esc_name, *esc_id;
 	
 	g_return_val_if_fail(pool, NULL);
 	g_return_val_if_fail(pool->scheme_name, NULL);
 	g_return_val_if_fail(pool->name, NULL);
 
+	/* Escape all the elements for filesystem-friendliness */
+	esc_scheme_name = g_strdup(purple_escape_filename(pool->scheme_name));
+	esc_name = g_strdup(purple_escape_filename(pool->name));
+	esc_id = g_strdup(purple_escape_filename(id));
+	
 	path = g_build_filename(purple_user_dir(),
 				"certificates", /* TODO: constantize this? */
-				pool->scheme_name,
-				pool->name,
-				id,
+				esc_scheme_name,
+				esc_name,
+				esc_id,
 				NULL);
 
-	path2 = g_strdup(purple_escape_filename(path));
-	
-	g_free(path);
-	return path2;
+	g_free(esc_scheme_name);
+	g_free(esc_name);
+	g_free(esc_id);
+	return path;
 }
 
 gboolean