INN commit: trunk/nnrpd (sasl.c)

INN Commit Russ_Allbery at isc.org
Sun Sep 21 19:05:54 UTC 2008


    Date: Sunday, September 21, 2008 @ 12:05:53
  Author: iulius
Revision: 8046

Correctly find out 504 or 482 for base64-encoding.

Modified:
  trunk/nnrpd/sasl.c

--------+
 sasl.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Modified: sasl.c
===================================================================
--- sasl.c	2008-09-21 18:44:24 UTC (rev 8045)
+++ sasl.c	2008-09-21 19:05:53 UTC (rev 8046)
@@ -109,6 +109,7 @@
     const void *property;
     int r = SASL_OK;
     int r1;
+    bool base64error = false;
 
     if (ac < 3 || ac > 4) {
         /* In fact, ac > 4 here. */
@@ -157,6 +158,7 @@
                                base64, BASE64_BUF_SIZE, &clientinlen);
             clientin = base64;
             r = (r1 == SASL_CONTINUE ? SASL_BADPROT : r1);
+            base64error = (r == SASL_BADPROT);
 	}
     }
 
@@ -237,6 +239,7 @@
                                base64, BASE64_BUF_SIZE, &clientinlen);
             clientin = base64;
             r = (r1 == SASL_CONTINUE ? SASL_BADPROT : r1);
+            base64error = (r == SASL_BADPROT);
         }
 
         /* Do the next step. */
@@ -308,7 +311,7 @@
 
 	switch (r) {
 	case SASL_BADPROT:
-            resp_code = NNTP_ERR_BASE64;
+            resp_code = (base64error ? NNTP_ERR_BASE64 : NNTP_FAIL_AUTHINFO_REJECT);
             break;
         case SASL_BADPARAM:
         case SASL_NOTDONE:



More information about the inn-committers mailing list