commit fd872a7ff7078c76fa255305c630258d02934d49
parent 0dfbf6f6fba286e901cfdf52157cf35e106da583
Author: Oswald Buddenhagen <ossi@users.sf.net>
Date: Sat, 12 Apr 2014 14:58:18 +0200
don't crash on truncated LIST response
found by coverity.
Diffstat:
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/drv_imap.c b/src/drv_imap.c
@@ -1040,8 +1040,9 @@ parse_list_rsp( imap_store_t *ctx, list_t *list, char *cmd )
list_t *lp;
if (!is_list( list )) {
- error( "IMAP error: malformed LIST response\n" );
free_list( list );
+ bad_list:
+ error( "IMAP error: malformed LIST response\n" );
return LIST_BAD;
}
for (lp = list->child; lp; lp = lp->next)
@@ -1050,7 +1051,8 @@ parse_list_rsp( imap_store_t *ctx, list_t *list, char *cmd )
return LIST_OK;
}
free_list( list );
- arg = next_arg( &cmd );
+ if (!(arg = next_arg( &cmd )))
+ goto bad_list;
if (!ctx->delimiter)
ctx->delimiter = nfstrdup( arg );
return parse_list( ctx, cmd, parse_list_rsp_p2 );