be somewhat stricter about the LIST response syntax
the first token *must* be a list.
This commit is contained in:
parent
a0dc37339e
commit
6dfccb76a5
|
@ -887,16 +887,16 @@ parse_list_rsp( imap_store_t *ctx, list_t *list, char *cmd )
|
||||||
char *arg;
|
char *arg;
|
||||||
list_t *lp;
|
list_t *lp;
|
||||||
|
|
||||||
if (!list) {
|
if (!is_list( list )) {
|
||||||
error( "IMAP error: malformed LIST response\n" );
|
error( "IMAP error: malformed LIST response\n" );
|
||||||
|
free_list( list );
|
||||||
return LIST_BAD;
|
return LIST_BAD;
|
||||||
}
|
}
|
||||||
if (list->val == LIST)
|
for (lp = list->child; lp; lp = lp->next)
|
||||||
for (lp = list->child; lp; lp = lp->next)
|
if (is_atom( lp ) && !strcasecmp( lp->val, "\\NoSelect" )) {
|
||||||
if (is_atom( lp ) && !strcasecmp( lp->val, "\\NoSelect" )) {
|
free_list( list );
|
||||||
free_list( list );
|
return LIST_OK;
|
||||||
return LIST_OK;
|
}
|
||||||
}
|
|
||||||
free_list( list );
|
free_list( list );
|
||||||
arg = next_arg( &cmd );
|
arg = next_arg( &cmd );
|
||||||
if (!ctx->delimiter)
|
if (!ctx->delimiter)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user