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 fa3c59e..d376c72 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 fafc853..d96f28b 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 2f18677..c279d13 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 f7ed27b..256cef8 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;
        }