]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/auth.c
Merge pull request #169 from SimonTate/fix-pppoe-empty-password
[ppp.git] / pppd / auth.c
index 7457eda227bf19c2d09b79dd4e0b031da6bc1bf9..3641b6ea701f11af845331926d308c366103a4d5 100644 (file)
 #include "pathnames.h"
 #include "session.h"
 
-static const char rcsid[] = RCSID;
 
 /* Bits in scan_authfile return value */
 #define NONWILD_SERVER 1
@@ -430,6 +429,7 @@ setupapfile(argv)
     euid = geteuid();
     if (seteuid(getuid()) == -1) {
        option_error("unable to reset uid before opening %s: %m", fname);
+        free(fname);
        return 0;
     }
     ufile = fopen(fname, "r");
@@ -437,6 +437,7 @@ setupapfile(argv)
        fatal("unable to regain privileges: %m");
     if (ufile == NULL) {
        option_error("unable to open user login data file %s", fname);
+        free(fname);
        return 0;
     }
     check_access(ufile, fname);
@@ -447,6 +448,7 @@ setupapfile(argv)
        || fgets(p, MAXSECRETLEN - 1, ufile) == NULL) {
        fclose(ufile);
        option_error("unable to read user login data file %s", fname);
+        free(fname);
        return 0;
     }
     fclose(ufile);
@@ -468,6 +470,7 @@ setupapfile(argv)
        explicit_passwd = 1;
     }
 
+    free(fname);
     return (1);
 }
 
@@ -1335,7 +1338,7 @@ auth_reset(unit)
     hadchap = -1;
     ao->neg_upap = !refuse_pap && (passwd[0] != 0 || get_pap_passwd(NULL));
     ao->neg_chap = (!refuse_chap || !refuse_mschap || !refuse_mschap_v2)
-       && (passwd[0] != 0 ||
+       && ((passwd[0] != 0 || explicit_passwd) ||
            (hadchap = have_chap_secret(user, (explicit_remote? remote_name:
                                               NULL), 0, NULL)));
     ao->neg_eap = !refuse_eap && (