Hey,

Ater the sasl_client_step is called and the cyrus sasl library forwards
it to the client plugin, if the result value is OK (authentication
succeeded), the clientout is filled out to be an empty string, even if
the client plugin wanted to return NULL.

https://github.com/cyrusimap/cyrus-sasl/blob/master/lib/client.c#L936

I guess this is some obsolete "make sure we don't segfault" type of
thing, but anyways, this means that for my OAUTHBEARER mechanism this
results in an unnecessary warnings from mbsync.

I will share my OAUTHBEARER solution as soon as ready
is under development and I will share as soon ready.

In the meantime here is the patch that I would like to ask you to apply:

diff --git a/src/drv_imap.c b/src/drv_imap.c
index 58fc9d3..991ca1f 100644
--- a/src/drv_imap.c
+++ b/src/drv_imap.c
@@ -2079,7 +2079,7 @@ done_sasl_auth( imap_store_t *ctx, imap_cmd_t *cmd 
ATTR_UNUSED, int response )
                int rc = sasl_client_step( ctx->sasl, NULL, 0, &interact, &out, 
&out_len );
                if (process_sasl_step( ctx, rc, NULL, 0, interact, &out, 
&out_len ) < 0)
                        warn( "Warning: SASL reported failure despite 
successful IMAP authentication. Ignoring...\n" );
-               else if (out)
+               if (out_len > 0)
                        warn( "Warning: SASL wants more steps despite 
successful IMAP authentication. Ignoring...\n" );
        }

Cheers,
Gergely



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

Reply via email to