I have patch netqmail-1.05 with netqmail-1.05-tls-smtpauth-20040207.patch 
and have had a problem with both types of AUTH PLAIN.  I am always getting 
'501 malformed auth input' with either of the following :-

1) AUTH PLAIN with base64 on the same line
2) AUTH PLAIN on its own line followed by base64 on a following line

I have narrowed this down to the version of base64.c that is included in 
the patch.

In auth_plain() the following happens :-

    if (r = b64decode(authin.s,authin.len,&resp) ...

This is fine, resp.s is a pointer to the decoded input from either type of 
AUTH PLAIN command, BUT resp.len is 0.  The base64.c shipped in the patch 
does not update the len part of the string struct.  I have reverted to the 
base64.c that shipped originally with Mrs Brisby's patch and all works 
fine.

As a point of interest I had a look to see why AUTH LOGIN works fine and 
the code for AUTH LOGIN does not use resp.len for anything where as AUTH 
PLAIN uses resp.len to see if there is enough information to break it 
down into id, user, pass.

I think I am right, I am just suprised that it has not been seen before.  
If there is a problem with the base64.c in Mrs Brisby's patch let me know 
and I will have a look at fixing the one included in Bill Shupp's patch.

Reply via email to