Fix bug #3855: segfault at startup with old profile and IMAP account
[claws.git] / src / imap.c
index 79d03575f3b081345dc1f84ba22a7114fb7c238c..25bb2832f3e0e711d653126b6ef749b15fdddf6a 100644 (file)
@@ -460,7 +460,7 @@ FolderClass *imap_get_class(void)
        if (imap_class.idstr == NULL) {
                imap_class.type = F_IMAP;
                imap_class.idstr = "imap";
-               imap_class.uistr = "IMAP4";
+               imap_class.uistr = "IMAP";
                imap_class.supports_server_search = TRUE;
 
                /* Folder functions */
@@ -576,7 +576,7 @@ static void imap_disc_session_destroy(IMAPSession *session)
        
        if (rfolder == NULL)
                return;
-       log_warning(LOG_PROTOCOL, _("IMAP4 connection broken\n"));
+       log_warning(LOG_PROTOCOL, _("IMAP connection broken\n"));
        SESSION(session)->state = SESSION_DISCONNECTED;
        SESSION(session)->sock = NULL;
 }
@@ -738,7 +738,7 @@ static void imap_handle_error(Session *session, const gchar *server, int libetpa
                break;
 #ifdef USE_GNUTLS
        case MAILIMAP_ERROR_SSL:
-               log_warning(LOG_PROTOCOL, g_strconcat(_("IMAP error on %s:"), " ", _("SSL error"), "\n", NULL), session_server);
+               log_warning(LOG_PROTOCOL, g_strconcat(_("IMAP error on %s:"), " ", _("SSL/TLS error"), "\n", NULL), session_server);
                break;
 #endif
        default:
@@ -1006,10 +1006,10 @@ static IMAPSession *imap_reconnect_if_possible(Folder *folder, IMAPSession *sess
                session = NULL;
        } else {
                rfolder->session = NULL;
-               log_warning(LOG_PROTOCOL, _("IMAP4 connection to %s has been"
+               log_warning(LOG_PROTOCOL, _("IMAP connection to %s has been"
                            " disconnected. Reconnecting...\n"),
                            folder->account->recv_server);
-               statusbar_print_all(_("IMAP4 connection to %s has been"
+               statusbar_print_all(_("IMAP connection to %s has been"
                            " disconnected. Reconnecting...\n"),
                            folder->account->recv_server);
                SESSION(session)->state = SESSION_DISCONNECTED;
@@ -1150,8 +1150,8 @@ static IMAPSession *imap_session_new(Folder * folder,
        if (account->ssl_imap != SSL_NONE) {
                if (alertpanel_full(_("Insecure connection"),
                        _("This connection is configured to be secured "
-                         "using SSL, but SSL is not available in this "
-                         "build of Claws Mail. \n\n"
+                         "using SSL/TLS, but SSL/TLS is not available "
+                         "in this build of Claws Mail. \n\n"
                          "Do you want to continue connecting to this "
                          "server? The communication would not be "
                          "secure."),
@@ -1165,7 +1165,7 @@ static IMAPSession *imap_session_new(Folder * folder,
 #endif
 
        imap_init(folder);
-       buf = g_strdup_printf(_("Account '%s': Connecting to IMAP4 server: %s:%d..."),
+       buf = g_strdup_printf(_("Account '%s': Connecting to IMAP server: %s:%d..."),
                                folder->account->account_name, folder->account->recv_server,
                                port);
        statuswindow_print_all("%s", buf);
@@ -1207,16 +1207,16 @@ static IMAPSession *imap_session_new(Folder * folder,
        else {
 #ifdef USE_GNUTLS
                if (r == MAILIMAP_ERROR_SSL)
-                       log_error(LOG_PROTOCOL, _("SSL handshake failed\n"));
+                       log_error(LOG_PROTOCOL, _("SSL/TLS handshake failed\n"));
                else
 #endif
                        imap_handle_error(NULL, account->recv_server, r);
 
                if(!prefs_common.no_recv_err_panel) {
-                       alertpanel_error_log(_("Can't connect to IMAP4 server: %s:%d"),
+                       alertpanel_error_log(_("Can't connect to IMAP server: %s:%d"),
                                         account->recv_server, port);
                } else {
-                       log_error(LOG_PROTOCOL, _("Can't connect to IMAP4 server: %s:%d\n"),
+                       log_error(LOG_PROTOCOL, _("Can't connect to IMAP server: %s:%d\n"),
                                         account->recv_server, port);
                } 
                
@@ -1249,7 +1249,7 @@ static IMAPSession *imap_session_new(Folder * folder,
 
                ok = imap_cmd_starttls(session);
                if (ok != MAILIMAP_NO_ERROR) {
-                       log_warning(LOG_PROTOCOL, _("Can't start TLS session.\n"));
+                       log_warning(LOG_PROTOCOL, _("Can't start STARTTLS session.\n"));
                        if (!is_fatal(ok)) {
                                SESSION(session)->sock = NULL;
                                imap_safe_destroy(session);
@@ -1323,8 +1323,9 @@ try_again:
                }
 
                if (acc_pass != NULL) {
-                       g_free(acc_pass);
                        memset(acc_pass, 0, strlen(acc_pass));
+                       g_free(acc_pass);
+                       acc_pass = NULL;
                }
 
                return ok;
@@ -4101,10 +4102,10 @@ static gint imap_cmd_login(IMAPSession *session,
                gint ok = MAILIMAP_ERROR_BAD_STATE;
                if (imap_has_capability(session, "STARTTLS")) {
 #ifdef USE_GNUTLS
-                       log_warning(LOG_PROTOCOL, _("Server requires TLS to log in.\n"));
+                       log_warning(LOG_PROTOCOL, _("Server requires STARTTLS to log in.\n"));
                        ok = imap_cmd_starttls(session);
                        if (ok != MAILIMAP_NO_ERROR) {
-                               log_warning(LOG_PROTOCOL, _("Can't start TLS session.\n"));
+                               log_warning(LOG_PROTOCOL, _("Can't start STARTTLS session.\n"));
                                return ok;
                        } else {
                                /* refresh capas */
@@ -4117,8 +4118,8 @@ static gint imap_cmd_login(IMAPSession *session,
                        }
 #else          
                        log_error(LOG_PROTOCOL, _("Connection to %s failed: "
-                                       "server requires TLS, but Claws Mail "
-                                       "has been compiled without TLS "
+                                       "server requires STARTTLS, but Claws Mail "
+                                       "has been compiled without STARTTLS "
                                        "support.\n"),
                                        SESSION(session)->server);
                        return MAILIMAP_ERROR_LOGIN;
@@ -4129,18 +4130,18 @@ static gint imap_cmd_login(IMAPSession *session,
                }
        }
 
-       log_print(LOG_PROTOCOL, "IMAP4> Logging %s to %s using %s\n", 
+       log_print(LOG_PROTOCOL, "IMAP> Logging %s to %s using %s\n", 
                        user,
                        SESSION(session)->server,
                        type);
        r = imap_threaded_login(session->folder, user, pass, type);
        if (r != MAILIMAP_NO_ERROR) {
                imap_handle_error(SESSION(session), NULL, r);
-               log_print(LOG_PROTOCOL, "IMAP4< Error logging in to %s\n",
+               log_print(LOG_PROTOCOL, "IMAP< Error logging in to %s\n",
                                SESSION(session)->server);
                ok = r;
        } else {
-               log_print(LOG_PROTOCOL, "IMAP4< Login to %s successful\n",
+               log_print(LOG_PROTOCOL, "IMAP< Login to %s successful\n",
                                SESSION(session)->server);
                ok = MAILIMAP_NO_ERROR;
        }
@@ -4193,7 +4194,7 @@ static gint imap_cmd_starttls(IMAPSession *session)
                SESSION(session)->server, SESSION(session)->port);
        if (r != MAILIMAP_NO_ERROR) {
                imap_handle_error(SESSION(session), NULL, r);
-               debug_print("starttls err %d\n", r);
+               debug_print("STARTTLS err %d\n", r);
                return r;
        }
        return MAILIMAP_NO_ERROR;
@@ -6121,7 +6122,7 @@ FolderClass *imap_get_class(void)
        if (imap_class.idstr == NULL) {
                imap_class.type = F_IMAP;
                imap_class.idstr = "imap";
-               imap_class.uistr = "IMAP4";
+               imap_class.uistr = "IMAP";
 
                imap_class.new_folder = imap_folder_new;
                imap_class.create_tree = imap_create_tree;