commit b7b6d42af5b9cac5991991820e05e390a889cc6b
parent 2d3576d541ebcbaaa0fdde405b8d354e6943f5a9
Author: Colin Leroy <colin@colino.net>
Date: Sat, 27 Sep 2008 08:13:26 +0000
2008-09-27 [colin] 3.5.0cvs135
* src/imap.c
Fix crash when error happen on session establishment
Diffstat:
4 files changed, 50 insertions(+), 43 deletions(-)
diff --git 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
diff --git a/PATCHSETS b/PATCHSETS
@@ -3546,3 +3546,4 @@
( 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
diff --git a/configure.ac b/configure.ac
@@ -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=
diff --git a/src/imap.c b/src/imap.c
@@ -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;
}