1 --- ckermit-211.orig/ckufio.c
2 +++ ckermit-211/ckufio.c
4 static char guestpass[GUESTPASS] = { NUL, NUL }; /* Anonymous "password" */
5 static int logged_in = 0; /* Set when user is logged in */
6 static int askpasswd = 0; /* Have OK user, must ask for passwd */
8 +extern int gotemptypasswd;
13 @@ -8043,8 +8046,12 @@
16 debug(F110,"zvpass","calling pam_authenticate",0);
22 +#endif /* CK_LOGIN */
25 if ((pam_status = pam_authenticate(pamh, 0)) != PAM_SUCCESS) {
26 reply = pam_strerror(pamh, pam_status);
27 debug(F110,"zvpass PAM failure",reply,0);
28 --- ckermit-211.orig/ckuus7.c
29 +++ ckermit-211/ckuus7.c
32 extern char * k_info_dir;
36 +int gotemptypasswd = 0; /* distinguish empty passwd from none given */
38 +#endif /* CK_LOGIN */
42 extern struct mtab *mactab;
43 @@ -14656,9 +14662,9 @@
45 extern int on_recall; /* around Password prompting */
46 #endif /* CK_RECALL */
52 int rprompt = 0; /* Restore prompt */
55 @@ -14774,9 +14780,9 @@
56 debug(F111,"ckxlogin zvuser",userid,ok);
58 if (!*passwd && promptok
67 @@ -14852,6 +14858,9 @@
68 if (pflag) prompt(xxstring); /* Issue prompt if at top level */
69 cmres(); /* Reset the parser */
70 for (x = -1; x < 0;) { /* Prompt till they answer */
74 x = cmtxt("","",&s,NULL); /* Get a literal line of text */
75 if (x == -4 || x == -10) {
76 printf("\r\n%sLogin cancelled\n",
77 @@ -14861,6 +14870,10 @@
85 if (sstate) /* In case of a Kermit packet */
87 cmres(); /* Reset the parser again */
88 @@ -14895,6 +14908,12 @@
90 ok = zvpass((char *)passwd); /* Check password */
91 debug(F101,"ckxlogin zvpass","",ok);
94 + /* Fake pam password failure for nonexistent users */
96 + printf("Authentication failure\n");
100 if (ok > 0 && isguest) {