r = nntp_threaded_connect(folder, server, port);
if (r != NEWSNNTP_NO_ERROR) {
- log_error(LOG_PROTOCOL, _("Error logging in to %s:%d ...\n"), server, port);
- session_destroy(SESSION(session));
+ log_error(LOG_PROTOCOL, _("Error logging in to %s:%d...\n"), server, port);
+ if (session != NULL)
+ session_destroy(SESSION(session));
return NULL;
}
else {
/* An error state bail out */
log_error(LOG_PROTOCOL, _("Error creating session with %s:%d\n"), ac->nntp_server, port);
- session_destroy(SESSION(session));
+ if (session != NULL)
+ session_destroy(SESSION(session));
g_free(passwd);
if (ac->session_passwd) {
g_free(ac->session_passwd);
if ((session != NULL) && ac->use_nntp_auth) { /* FIXME: && ac->use_nntp_auth_onconnect */
if (nntp_threaded_login(folder, userid, passwd) !=
NEWSNNTP_NO_ERROR) {
- log_error(LOG_PROTOCOL, _("Error authenticating to %s:%d ...\n"), ac->nntp_server, port);
+ log_error(LOG_PROTOCOL, _("Error authenticating to %s:%d...\n"), ac->nntp_server, port);
session_destroy(SESSION(session));
g_free(passwd);
if (ac->session_passwd) {
r = nntp_threaded_article(folder, num, &result, &len);
if (r == NEWSNNTP_NO_ERROR) {
- if (str_write_to_file(result, filename) < 0)
+ if (str_write_to_file(result, filename) < 0) {
+ mmap_string_unref(result);
return -1;
- g_free(result);
+ }
+ mmap_string_unref(result);
}
return r;