Commit e6b7dae9 authored by Jiri Hruska's avatar Jiri Hruska Committed by Steve Holme
Browse files

imap: Added required mailbox check for FETCH and APPEND commands

parent fa637c6c
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -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;