* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
-#ifndef lint
-static char rcsid[] = "$Id: upap.c,v 1.17 1999/06/24 00:17:48 paulus Exp $";
-#endif
+#define RCSID "$Id: upap.c,v 1.23 1999/11/20 05:11:47 paulus Exp $"
/*
* TODO:
#include "pppd.h"
#include "upap.h"
-static bool hide_password;
+static const char rcsid[] = RCSID;
+
+static bool hide_password = 1;
/*
* Command-line options.
static option_t pap_option_list[] = {
{ "hide-password", o_bool, &hide_password,
"Don't output passwords to log", 1 },
+ { "show-password", o_bool, &hide_password,
+ "Show password string in debug log messages", 0 },
{ "pap-restart", o_int, &upap[0].us_timeouttime,
"Set retransmit timeout for PAP" },
{ "pap-max-authreq", o_int, &upap[0].us_maxtransmits,
/*
* Parse user/passwd.
*/
- if (len < sizeof (u_char)) {
+ if (len < 1) {
UPAPDEBUG(("pap_rauth: rcvd short packet."));
return;
}
* Check the username and password given.
*/
retcode = check_passwd(u->us_unit, ruser, ruserlen, rpasswd,
- rpasswdlen, &msg, &msglen);
+ rpasswdlen, &msg);
BZERO(rpasswd, rpasswdlen);
+ msglen = strlen(msg);
+ if (msglen > 255)
+ msglen = 255;
upap_sresp(u, retcode, id, msg, msglen);
/*
* Parse message.
*/
- if (len < sizeof (u_char)) {
- UPAPDEBUG(("pap_rauthack: rcvd short packet."));
- return;
- }
- GETCHAR(msglen, inp);
- if (msglen > 0) {
- len -= sizeof (u_char);
- if (len < msglen) {
- UPAPDEBUG(("pap_rauthack: rcvd short packet."));
- return;
+ if (len < 1) {
+ UPAPDEBUG(("pap_rauthack: ignoring missing msg-length."));
+ } else {
+ GETCHAR(msglen, inp);
+ if (msglen > 0) {
+ len -= sizeof (u_char);
+ if (len < msglen) {
+ UPAPDEBUG(("pap_rauthack: rcvd short packet."));
+ return;
+ }
+ msg = (char *) inp;
+ PRINTMSG(msg, msglen);
}
- msg = (char *) inp;
- PRINTMSG(msg, msglen);
}
u->us_clientstate = UPAPCS_OPEN;
/*
* Parse message.
*/
- if (len < sizeof (u_char)) {
- UPAPDEBUG(("pap_rauthnak: rcvd short packet."));
- return;
- }
- GETCHAR(msglen, inp);
- if (msglen > 0) {
- len -= sizeof (u_char);
- if (len < msglen) {
- UPAPDEBUG(("pap_rauthnak: rcvd short packet."));
- return;
+ if (len < 1) {
+ UPAPDEBUG(("pap_rauthnak: ignoring missing msg-length."));
+ } else {
+ GETCHAR(msglen, inp);
+ if (msglen > 0) {
+ len -= sizeof (u_char);
+ if (len < msglen) {
+ UPAPDEBUG(("pap_rauthnak: rcvd short packet."));
+ return;
+ }
+ msg = (char *) inp;
+ PRINTMSG(msg, msglen);
}
- msg = (char *) inp;
- PRINTMSG(msg, msglen);
}
u->us_clientstate = UPAPCS_BADAUTH;