commit 5048521d79342d3e6724a947de5b4a4fac328f13
Author: Oswald Buddenhagen <o...@users.sf.net>
Date:   Wed Nov 24 22:33:30 2021 +0100

    make sure that all IMAP lists are parsed
    
    ... even if we ignore their contents, as they may (hypothetically)
    contain literals, which are relevant for the stream syntax.
    
    amends 6fd4e8de2.

 src/drv_imap.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/drv_imap.c b/src/drv_imap.c
index 51c44279..cfb2bfa4 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -1028,15 +1028,20 @@ parse_namespace_rsp( imap_store_t *ctx, list_t *list )
        return parse_next_list( ctx, parse_namespace_rsp_p2 );
 }
 
+// Note that parse_list_rsp() below refers to these as well.
 static int
-parse_namespace_rsp_p2( imap_store_t *ctx, list_t *list ATTR_UNUSED )
+parse_namespace_rsp_p2( imap_store_t *ctx, list_t *list )
 {
+       if (!list)
+               return parse_list_perror( ctx );
        return parse_next_list( ctx, parse_namespace_rsp_p3 );
 }
 
 static int
-parse_namespace_rsp_p3( imap_store_t *ctx ATTR_UNUSED, list_t *list 
ATTR_UNUSED )
+parse_namespace_rsp_p3( imap_store_t *ctx, list_t *list )
 {
+       if (!list)
+               return parse_list_perror( ctx );
        return LIST_OK;
 }
 
@@ -1378,7 +1383,7 @@ parse_list_rsp( imap_store_t *ctx, list_t *list )
                return parse_list_perror( ctx );
        for (lp = list->child; lp; lp = lp->next)
                if (is_atom( lp ) && !strcasecmp( lp->val, "\\NoSelect" ))
-                       return LIST_OK;
+                       return parse_next_list( ctx, parse_namespace_rsp_p2 );  
// (sic!)
        return parse_next_list( ctx, parse_list_rsp_p1 );
 }
 


_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to