# HG changeset patch # User William Ehlhardt # Date 1183957094 0 # Node ID 0d4b84820390b4a71e1b76a4be1fd6c61aeb620f # Parent b64aa0222a7acad582b0e7c64edd5c7448a3f10b - Fix overzealous escaping cause by ancestor revision diff -r b64aa0222a7a -r 0d4b84820390 libpurple/certificate.c --- 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 diff -r b64aa0222a7a -r 0d4b84820390 libpurple/certificate.h --- a/libpurple/certificate.h Mon Jul 09 04:45:37 2007 +0000 +++ b/libpurple/certificate.h Mon Jul 09 04:58:14 2007 +0000 @@ -440,11 +440,12 @@ * Helper function for generating file paths in ~/.purple/certificates for * CertificatePools that use them. * + * All components will be escaped for filesystem friendliness. + * * @param pool CertificatePool to build a path for * @param id Key to look up a Certificate by. May be NULL. * @return A newly allocated path of the form - * ~/.purple/certificates/scheme_name/pool_name/unique_id, on which - * purple_escape_filename() has been run. + * ~/.purple/certificates/scheme_name/pool_name/unique_id */ gchar * purple_certificate_pool_mkpath(PurpleCertificatePool *pool, const gchar *id);