2008-09-27 [colin] 3.5.0cvs135
authorColin Leroy <colin@colino.net>
Sat, 27 Sep 2008 08:13:26 +0000 (08:13 +0000)
committerColin Leroy <colin@colino.net>
Sat, 27 Sep 2008 08:13:26 +0000 (08:13 +0000)
* src/imap.c
Fix crash when error happen on session establishment

ChangeLog
PATCHSETS
configure.ac
src/imap.c

index fa3c59e2cfe95e59f874982dc1e8328e0fe08957..d376c72b1da1516fb7603c28ca52751241bb95ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-09-27 [colin]     3.5.0cvs135
+
+       * src/imap.c
+               Fix crash when error happen on session establishment
+
 2008-09-26 [mones]     3.5.0cvs134
 
        * po/es.po
index fafc853ed1c5fcfec5f4e3c34282eaba440fc0b1..d96f28b4f7b94f94a67127da1b7dcf1ae6b12b8f 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.204.2.179 -r 1.204.2.180 src/prefs_common.c;  cvs diff -u -r 1.103.2.114 -r 1.103.2.115 src/prefs_common.h;  cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/plugins/pgpcore/pgp_viewer.c;  ) > 3.5.0cvs132.patchset
 ( cvs diff -u -r 1.1.2.4 -r 1.1.2.5 src/plugins/pgpcore/claws.def;  ) > 3.5.0cvs133.patchset
 ( cvs diff -u -r 1.60.2.54 -r 1.60.2.55 po/es.po;  ) > 3.5.0cvs134.patchset
+( cvs diff -u -r 1.179.2.230 -r 1.179.2.231 src/imap.c;  ) > 3.5.0cvs135.patchset
index 2f18677f2a75bfde0520738c95115b670d467ce8..c279d13a3b1a963f679f9604669e0c3a03a58073 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=5
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=134
+EXTRA_VERSION=135
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index f7ed27b3cb5426b7896f40ec6b2dbae3c85989d2..256cef837ad3bb194d4a3ff7ac21674da61b3b31 100644 (file)
@@ -557,139 +557,140 @@ static gboolean is_fatal(int libetpan_errcode)
 
 static void imap_handle_error(Session *session, int libetpan_errcode)
 {
+       const gchar *session_server = (session ? session->server:"(null)");
        switch(libetpan_errcode) {
        case MAILIMAP_NO_ERROR:
                return;
        case MAILIMAP_NO_ERROR_AUTHENTICATED:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: authenticated\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: authenticated\n"), session_server);
                break;
        case MAILIMAP_NO_ERROR_NON_AUTHENTICATED:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: not authenticated\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: not authenticated\n"), session_server);
                break;
        case MAILIMAP_ERROR_BAD_STATE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: bad state\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: bad state\n"), session_server);
                break;
        case MAILIMAP_ERROR_STREAM:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: stream error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: stream error\n"), session_server);
                break;
        case MAILIMAP_ERROR_PARSE:
                log_warning(LOG_PROTOCOL, _("IMAP error on %s: parse error "
-                                           "(very probably non-RFC compliance from the server)\n"), session->server);
+                                           "(very probably non-RFC compliance from the server)\n"), session_server);
                break;
        case MAILIMAP_ERROR_CONNECTION_REFUSED:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: connection refused\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: connection refused\n"), session_server);
                break;
        case MAILIMAP_ERROR_MEMORY:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: memory error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: memory error\n"), session_server);
                break;
        case MAILIMAP_ERROR_FATAL:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: fatal error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: fatal error\n"), session_server);
                break;
        case MAILIMAP_ERROR_PROTOCOL:
                log_warning(LOG_PROTOCOL, _("IMAP error on %s: protocol error"
-                                           "(very probably non-RFC compliance from the server)\n"), session->server);
+                                           "(very probably non-RFC compliance from the server)\n"), session_server);
                break;
        case MAILIMAP_ERROR_DONT_ACCEPT_CONNECTION:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: connection not accepted\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: connection not accepted\n"), session_server);
                break;
        case MAILIMAP_ERROR_APPEND:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: APPEND error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: APPEND error\n"), session_server);
                break;
        case MAILIMAP_ERROR_NOOP:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: NOOP error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: NOOP error\n"), session_server);
                break;
        case MAILIMAP_ERROR_LOGOUT:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LOGOUT error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LOGOUT error\n"), session_server);
                break;
        case MAILIMAP_ERROR_CAPABILITY:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CAPABILITY error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CAPABILITY error\n"), session_server);
                break;
        case MAILIMAP_ERROR_CHECK:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CHECK error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CHECK error\n"), session_server);
                break;
        case MAILIMAP_ERROR_CLOSE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CLOSE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CLOSE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_EXPUNGE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXPUNGE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXPUNGE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_COPY:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: COPY error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: COPY error\n"), session_server);
                break;
        case MAILIMAP_ERROR_UID_COPY:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID COPY error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID COPY error\n"), session_server);
                break;
        case MAILIMAP_ERROR_CREATE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CREATE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: CREATE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_DELETE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: DELETE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: DELETE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_EXAMINE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXAMINE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXAMINE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_FETCH:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: FETCH error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: FETCH error\n"), session_server);
                break;
        case MAILIMAP_ERROR_UID_FETCH:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID FETCH error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID FETCH error\n"), session_server);
                break;
        case MAILIMAP_ERROR_LIST:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LIST error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LIST error\n"), session_server);
                break;
        case MAILIMAP_ERROR_LOGIN:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LOGIN error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LOGIN error\n"), session_server);
                break;
        case MAILIMAP_ERROR_LSUB:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LSUB error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: LSUB error\n"), session_server);
                break;
        case MAILIMAP_ERROR_RENAME:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: RENAME error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: RENAME error\n"), session_server);
                break;
        case MAILIMAP_ERROR_SEARCH:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SEARCH error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SEARCH error\n"), session_server);
                break;
        case MAILIMAP_ERROR_UID_SEARCH:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID SEARCH error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID SEARCH error\n"), session_server);
                break;
        case MAILIMAP_ERROR_SELECT:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SELECT error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SELECT error\n"), session_server);
                break;
        case MAILIMAP_ERROR_STATUS:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STATUS error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STATUS error\n"), session_server);
                break;
        case MAILIMAP_ERROR_STORE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STORE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STORE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_UID_STORE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID STORE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UID STORE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_SUBSCRIBE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SUBSCRIBE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SUBSCRIBE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_UNSUBSCRIBE:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UNSUBSCRIBE error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: UNSUBSCRIBE error\n"), session_server);
                break;
        case MAILIMAP_ERROR_STARTTLS:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STARTTLS error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: STARTTLS error\n"), session_server);
                break;
        case MAILIMAP_ERROR_INVAL:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: INVAL error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: INVAL error\n"), session_server);
                break;
        case MAILIMAP_ERROR_EXTENSION:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXTENSION error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: EXTENSION error\n"), session_server);
                break;
        case MAILIMAP_ERROR_SASL:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SASL error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SASL error\n"), session_server);
                break;
 #if (defined(USE_OPENSSL) || defined (USE_GNUTLS))
        case MAILIMAP_ERROR_SSL:
-               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SSL error\n"), session->server);
+               log_warning(LOG_PROTOCOL, _("IMAP error on %s: SSL error\n"), session_server);
                break;
 #endif
        default:
                log_warning(LOG_PROTOCOL, _("IMAP error on %s: Unknown error [%d]\n"),
-                       session->server, libetpan_errcode);
+                       session_server, libetpan_errcode);
                break;
        }