sync with 0.9.7 release
authorPaul Mangan <paul@claws-mail.org>
Wed, 15 Oct 2003 07:50:12 +0000 (07:50 +0000)
committerPaul Mangan <paul@claws-mail.org>
Wed, 15 Oct 2003 07:50:12 +0000 (07:50 +0000)
ChangeLog
ChangeLog.claws
ChangeLog.jp
NEWS
configure.ac
src/imap.c

index c6212cf..fabe37d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2003-10-15
+
+       * version 0.9.7
+
+2003-10-15
+
+       * src/imap.c: imap_scan_tree(): check the existence of root directory
+         with LIST instead of STATUS.
+
 2003-10-07
 
        * src/send_message.c: fixed format string bug (exploitable by
index 60db043..6ab47e9 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-15 [paul]      0.9.6claws28
+
+       * sync with 0.9.7 release
+               see ChangeLog 2003-10-15
+
 2003-10-14 [christoph] 0.9.6claws27
 
        * src/plugins/clamav/clamav_plugin.c
index 2b00b35..2917d2a 100644 (file)
@@ -1,3 +1,12 @@
+2003-10-15
+
+       * version 0.9.7
+
+2003-10-15
+
+       * src/imap.c: imap_scan_tree(): ¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¸ºß¤ò STATUS
+         ¤Ç¤Ï¤Ê¤¯ LIST ¤Ç¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+
 2003-10-07
 
        * src/send_message.c: alertpanel_error() ¤ò¸Æ¤Ö¤È¤­¤Î¥Õ¥©¡¼¥Þ¥Ã¥È
diff --git a/NEWS b/NEWS
index 5199222..8a34653 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,12 @@
 Changes of Sylpheed
 
+* 0.9.7
+
+    * The vulnerability in SMTP response handling, which is exploitable by
+      a malicious SMTP server, has been fixed.
+    * The structure of folder system has been sorted out.
+    * The checking of the existence of IMAP root directory has been modified.
+
 * 0.9.6
 
     * A crash bug when deleting currently opened folder has been fixed.
index c858ca8..5749ecb 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=6
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=27
+EXTRA_VERSION=28
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index fcda94d..4e19572 100644 (file)
@@ -1209,24 +1209,31 @@ static gint imap_scan_tree(Folder *folder)
 
        if (folder->account->imap_dir && *folder->account->imap_dir) {
                gchar *real_path;
+               GPtrArray *argbuf;
+               gint ok;
 
                Xstrdup_a(root_folder, folder->account->imap_dir, return -1);
-               strtailchomp(root_folder, '/');
                extract_quote(root_folder, '"');
+               subst_char(root_folder,
+                          imap_get_path_separator(IMAP_FOLDER(folder),
+                                                  root_folder),
+                          '/');
+               strtailchomp(root_folder, '/');
                real_path = imap_get_real_path
                        (IMAP_FOLDER(folder), root_folder);
                debug_print("IMAP root directory: %s\n", real_path);
-               if (imap_status(session, IMAP_FOLDER(folder), root_folder,
-                                   NULL, NULL, NULL, NULL, NULL)
-                   != IMAP_SUCCESS) {
-                       if (imap_cmd_create(session, real_path)
-                           != IMAP_SUCCESS) {
-                               log_warning(_("can't create root folder %s\n"),
-                                           real_path);
-                               g_free(real_path);
-                               return -1;
-                       }
+
+               /* check if root directory exist */
+               argbuf = g_ptr_array_new();
+               ok = imap_cmd_list(session, NULL, real_path, argbuf);
+               if (ok != IMAP_SUCCESS ||
+                   search_array_str(argbuf, "LIST ") == NULL) {
+                       log_warning(_("root folder %s does not exist\n"), real_path);
+                       g_ptr_array_free(argbuf, TRUE);
+                       g_free(real_path);
+                       return -1;
                }
+               g_ptr_array_free(argbuf, TRUE);
                g_free(real_path);
        }