From b7e440df52f5e1a3c64964753abedfc1b029667d Mon Sep 17 00:00:00 2001 From: hiro Date: Thu, 10 Jul 2008 02:04:18 +0000 Subject: imap_add_inter_folders(): more error checks. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2027 ee746299-78ed-0310-b773-934348b2243d --- ChangeLog | 4 ++++ ChangeLog.ja | 4 ++++ libsylph/imap.c | 2 ++ 3 files changed, 10 insertions(+) diff --git a/ChangeLog b/ChangeLog index f68b2a08..2be34307 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-07-10 + + * libsylph/imap.c: imap_add_inter_folders(): more error checks. + 2008-07-09 * libsylph/imap.c: imap_get_folder_list(): add intermediate folders diff --git a/ChangeLog.ja b/ChangeLog.ja index 00d6e094..d697900c 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,7 @@ +2008-07-10 + + * libsylph/imap.c: imap_add_inter_folders(): エラーチェックの追加。 + 2008-07-09 * libsylph/imap.c: imap_get_folder_list(): 中間フォルダを追加する diff --git a/libsylph/imap.c b/libsylph/imap.c index 189aed59..edb8c908 100644 --- a/libsylph/imap.c +++ b/libsylph/imap.c @@ -2037,6 +2037,7 @@ static GSList *imap_add_inter_folders(GSList *item_list, const gchar *root_path) strncmp(root_path, item->path, root_path_len) != 0) continue; p = item->path + root_path_len; + if (root_path_len > 0 && *p != '/') continue; while (*p == '/') p++; if (*p == '\0') continue; g_hash_table_insert(exist, (gpointer)p, GINT_TO_POINTER(1)); @@ -2053,6 +2054,7 @@ static GSList *imap_add_inter_folders(GSList *item_list, const gchar *root_path) strncmp(root_path, item->path, root_path_len) != 0) continue; p = item->path + root_path_len; + if (root_path_len > 0 && *p != '/') continue; while (*p == '/') p++; if (*p == '\0') continue; -- cgit v1.2.3