From: Jiri Hruska Date: Sun, 3 Mar 2013 10:37:10 +0000 (+0100) Subject: imap: Added required mailbox check for FETCH and APPEND commands X-Git-Tag: upstream/7.37.1~2005 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e6b7dae9471d5b2ddcdba9f5012aee82a50bf47f;p=platform%2Fupstream%2Fcurl.git imap: Added required mailbox check for FETCH and APPEND commands --- diff --git a/lib/imap.c b/lib/imap.c index 6ed887a..cf27d60 100644 --- a/lib/imap.c +++ b/lib/imap.c @@ -693,7 +693,7 @@ static CURLcode imap_select(struct connectdata *conn) Curl_safefree(imapc->mailbox_uidvalidity); /* Make sure the mailbox is in the correct atom format */ - mailbox = imap_atom(imap->mailbox ? imap->mailbox : ""); + mailbox = imap_atom(imap->mailbox); if(!mailbox) result = CURLE_OUT_OF_MEMORY; else @@ -1867,6 +1867,7 @@ static CURLcode imap_perform(struct connectdata *conn, bool *connected, static CURLcode imap_do(struct connectdata *conn, bool *done) { CURLcode result = CURLE_OK; + struct IMAP *imap; *done = FALSE; /* default to false */ @@ -1879,6 +1880,8 @@ static CURLcode imap_do(struct connectdata *conn, bool *done) if(result) return result; + imap = conn->data->state.proto.imap; + /* Parse the URL path */ result = imap_parse_url_path(conn); if(result) @@ -1889,6 +1892,12 @@ static CURLcode imap_do(struct connectdata *conn, bool *done) if(result) return result; + /* Check we have a mailbox for FETCH and APPEND commands */ + if(!imap->custom && !imap->mailbox) { + failf(conn->data, "FETCH and APPEND require a mailbox."); + return CURLE_URL_MALFORMAT; + } + result = imap_regular_transfer(conn, done); return result;