summaryrefslogtreecommitdiff
path: root/security/openssh/files/patch-av
blob: 88cc6a43fd68ba4bbfbb17a201f96471d29c5bb1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
--- auth.c.orif	Thu Apr 20 17:21:58 2000
+++ auth.c	Thu Apr 20 17:50:06 2000
@@ -26,7 +26,6 @@
 #include "session.h"
 #include "dispatch.h"
 
-
 /* import */
 extern ServerOptions options;
 extern char *forced_command;
@@ -106,6 +105,16 @@
 				return 0;
 		}
 	}
+#ifdef __FreeBSD__
+	/* Fail if the account's expiration time has passed. */
+	if (pw->pw_expire != 0) {
+		struct timeval tv;
+
+		(void)gettimeofday(&tv, NULL);
+		if (tv.tv_sec >= pw->pw_expire)
+			return 0;
+	}
+#endif /* __FreeBSD__ */
 	/* We found no reason not to let this user try to log on... */
 	return 1;
 }
@@ -523,6 +532,11 @@
 	pwcopy.pw_gid = pw->pw_gid;
 	pwcopy.pw_dir = xstrdup(pw->pw_dir);
 	pwcopy.pw_shell = xstrdup(pw->pw_shell);
+#ifdef __FreeBSD__
+	pwcopy.pw_class = xstrdup(pw->pw_class);
+	pwcopy.pw_expire = pw->pw_expire;
+	pwcopy.pw_change = pw->pw_change;
+#endif /* __FreeBSD__ */
 	pw = &pwcopy;
 
 	/*