From 768ce5ccec90c1b062b749e7ad0464d09760b91c Mon Sep 17 00:00:00 2001 From: zautrix Date: Fri, 10 Sep 2004 20:16:14 +0000 Subject: Some imap fixes --- (limited to 'kmicromail') diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index be825ef..ca1c7f1 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp @@ -403,14 +403,19 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) current = c; size = 0; item = (mailimap_msg_att_item*)current->data; + if ( !item ) + continue; if (item->att_type!=MAILIMAP_MSG_ATT_ITEM_STATIC) { flist = (mailimap_msg_att_dynamic*)item->att_data.att_dyn; - if (!flist->att_list) { + if (!flist || !flist->att_list) { continue; } cf = flist->att_list->first; + if( ! cf ) for (cf = clist_begin(flist->att_list); cf!=NULL; cf = clist_next(cf)) { cflag = (mailimap_flag_fetch*)cf->data; + if( ! cflag ) + qDebug("imap:not cflag "); if (cflag->fl_type==MAILIMAP_FLAG_FETCH_OTHER && cflag->fl_flag!=0) { switch (cflag->fl_flag->fl_type) { case MAILIMAP_FLAG_ANSWERED: /* \Answered flag */ @@ -441,10 +446,16 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) } continue; } + if ( item->att_data.att_static == NULL ) + continue; if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_ENVELOPE) { mailimap_envelope * head = item->att_data.att_static->att_data.att_env; - m->setDate(head->env_date); - m->setSubject(convert_String((const char*)head->env_subject)); + if ( head == NULL ) + continue; + if ( head->env_date != NULL ) + m->setDate(head->env_date); + if ( head->env_subject != NULL ) + m->setSubject(convert_String((const char*)head->env_subject)); //m->setSubject(head->env_subject); if (head->env_from!=NULL) { addresslist = address_list_to_stringlist(head->env_from->frm_list); @@ -483,7 +494,7 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) m->setInreply(QStringList(h)); } } - if (head->env_message_id) { + if (head->env_message_id != NULL) { m->setMsgid(QString(head->env_message_id)); } } else if (item->att_data.att_static->att_type==MAILIMAP_MSG_ATT_INTERNALDATE) { -- cgit v0.9.0.2