postfix+saslauthd+pam_mysql 在密码中添加了 EOL,从而破坏了

postfix+saslauthd+pam_mysql 在密码中添加了 EOL,从而破坏了

我正在尝试将 pam_mysql 模块与 postfix 和 saslauthd 结合使用。一切似乎都正常,只是实际的密码比较失败了。

注:测试的案例为SMTPD认证提交。

我已构建并调试了 pam_mysql 的一个调试副本。结果发现,传递给 pam_mysql_check_passwd() 的密码末尾附加了一个 EOL(即 (char)10)...,因此密码比较失败。

我已经实施了一个简单的修复程序,它似乎有效......只需剥离 EOL(如果存在)即可。

首先,我不知道这是否是一个真正正确的解决方案,因为堆栈中 pam_mysql 上方有几层可能是罪魁祸首,但与此同时,我真的对调试 postfix、saslauthd 等感到精疲力竭。

这个问题对任何人来说都具有警示作用吗? 我只是不想维护自己的 pam_mysql 副本...,尤其是因为我可能 20 年来都没有真正做过任何重要的 C 开发,而且对自己也不是很确定。

这是我第一次向 serverfault 发帖...,所以提前致歉并表示感谢。

相关内容