Helge Oldach points out that authentication on SNPP is broken.
We weren't checking if a password was required, and were actually
authenticating the already known password, not the user supplied password.
passwd = "*"; // just in case...
if (checkUser(loginID)) {
- if (! checkPasswd(passwd)) {
+ if (passwd != "" && ! checkPasswd(pass)) {
if (++loginAttempts >= maxLoginAttempts) {
reply(421, "Login incorrect (closing connection).");
logNotice("Repeated SNPP login failures for user %s from %s [%s]"