This appears to be a bug in Cyrus SASL 1.5.24. It's fixed
in Cyrus's CVS tree.
--- lib/server.c.orig Thu Sep 21 08:01:33 2000
+++ lib/server.c Thu Sep 21 08:01:51 2000
@@ -895,7 +895,7 @@
s_conn->base.oparams.user = (char *) canonuser;
}
- return SASL_OK;
+ return ret;
}