]> git.ozlabs.org Git - ppp.git/blobdiff - pppd/session.c
pppd: Eliminate some more compiler warnings
[ppp.git] / pppd / session.c
index 32901a24546f5913b67cdced816f002de9edc6e3..473e51e1912f63074eb7c1d058a601f17fc2749e 100644 (file)
@@ -178,6 +178,7 @@ session_start(flags, user, passwd, ttyName, msg)
     bool try_session = 0;
 #else /* #ifdef USE_PAM */
     struct passwd *pw;
+    char *cbuf;
 #ifdef HAS_SHADOW
     struct spwd *spwd;
     struct spwd *getspnam();
@@ -348,8 +349,10 @@ session_start(flags, user, passwd, ttyName, msg)
        /*
         * If no passwd, don't let them login if we're authenticating.
         */
-        if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2
-            || strcmp(crypt(passwd, pw->pw_passwd), pw->pw_passwd) != 0)
+        if (pw->pw_passwd == NULL || strlen(pw->pw_passwd) < 2)
+            return SESSION_FAILED;
+       cbuf = crypt(passwd, pw->pw_passwd);
+       if (!cbuf || strcmp(cbuf, pw->pw_passwd) != 0)
             return SESSION_FAILED;
     }
 
@@ -381,8 +384,8 @@ session_start(flags, user, passwd, ttyName, msg)
                 memset((void *)&ll, 0, sizeof(ll));
                (void)time(&tnow);
                 ll.ll_time = tnow;
-                (void)strncpy(ll.ll_line, ttyName, sizeof(ll.ll_line));
-                (void)strncpy(ll.ll_host, ifname, sizeof(ll.ll_host));
+                strlcpy(ll.ll_line, ttyName, sizeof(ll.ll_line));
+                strlcpy(ll.ll_host, ifname, sizeof(ll.ll_host));
                 (void)write(fd, (char *)&ll, sizeof(ll));
                 (void)close(fd);
             }