X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=pppd%2Fauth.c;h=3904d47508f743e670e3c3de389138199a3ed529;hb=0f9a7931d88adb8df9d962997c7cd92969f1d80d;hp=002ec859f880abb2363982e62220902385272fa6;hpb=71d3de90eae52087b405e962ca650b71cec79c67;p=ppp.git diff --git a/pppd/auth.c b/pppd/auth.c index 002ec85..3904d47 100644 --- a/pppd/auth.c +++ b/pppd/auth.c @@ -73,7 +73,7 @@ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#define RCSID "$Id: auth.c,v 1.95 2003/06/11 23:56:26 paulus Exp $" +#define RCSID "$Id: auth.c,v 1.98 2004/10/31 22:23:18 paulus Exp $" #include #include @@ -1072,8 +1072,8 @@ connect_time_expired(arg) void *arg; { info("Connect time expired"); - lcp_close(0, "Connect time expired"); /* Close connection */ status = EXIT_CONNECT_TIME; + lcp_close(0, "Connect time expired"); /* Close connection */ } /* @@ -1109,12 +1109,14 @@ auth_check_options() if (auth_required) { allow_any_ip = 0; if (!wo->neg_chap && !wo->neg_upap && !wo->neg_eap) { - wo->neg_chap = 1; wo->chap_mdtype = MDTYPE_ALL; + wo->neg_chap = 1; + wo->chap_mdtype = chap_mdtype_all; wo->neg_upap = 1; wo->neg_eap = 1; } } else { - wo->neg_chap = 0; wo->chap_mdtype = MDTYPE_NONE; + wo->neg_chap = 0; + wo->chap_mdtype = MDTYPE_NONE; wo->neg_upap = 0; wo->neg_eap = 0; } @@ -1251,14 +1253,15 @@ check_passwd(unit, auser, userlen, apasswd, passwdlen, msg) if (pap_auth_hook) { ret = (*pap_auth_hook)(user, passwd, msg, &addrs, &opts); if (ret >= 0) { + /* note: set_allowed_addrs() saves opts (but not addrs): + don't free it! */ if (ret) set_allowed_addrs(unit, addrs, opts); - BZERO(passwd, sizeof(passwd)); + else if (opts != 0) + free_wordlist(opts); if (addrs != 0) free_wordlist(addrs); - if (opts != 0) { - free_wordlist(opts); - } + BZERO(passwd, sizeof(passwd)); return ret? UPAP_AUTHACK: UPAP_AUTHNAK; } }