Bugzilla – Bug 777
sudo_auth.h wrong prototype if !HAVE_KRB5_VERIFY_USER
Last modified: 2017-03-10 12:19:30 MST
auth/kerb5.c has #ifdef HAVE_KRB5_VERIFY_USER int sudo_krb5_verify(struct passwd *pw, char *pass, sudo_auth *auth, struct sudo_con v_callback *callback) ... #else sudo_krb5_verify(struct passwd *pw, char *pass, sudo_auth *auth) ... #endif The prototypes in sudo_auth.h need a similar #ifdef. Breaks compilation.
Fixed by https://www.sudo.ws/repos/sudo/rev/eafd4e2d7c7f
Errr... thats a bogus fix. well, i guess technically it WORKS.. but it's horrible coding practice :( Its putting lies in the code :( You just added an unused parameter. The proper way would be to fix the prototype def in sudo_auth.h
The fix is correct, your analysis is wrong. All the auth verify functions now take a callback parameter which may or may not be used by the particular authentication method. The function is called like this: success = auth->status = (auth->verify)(pw, standalone ? prompt : pass, auth, callback); I just missed adding it to the other declaration of sudo_krb5_verify() when the callback parameter was added.
oh. fair enough then :)