Slightly tweaked from Olivier Fourdan's original version. diff -up krb5-1.6.1/src/appl/gssftp/ftpd/ftpd.c.nullpointer krb5-1.6.1/src/appl/gssftp/ftpd/ftpd.c --- krb5-1.6.1/src/appl/gssftp/ftpd/ftpd.c.nullpointer 2010-03-01 10:21:42.000000000 +0000 +++ krb5-1.6.1/src/appl/gssftp/ftpd/ftpd.c 2010-03-01 13:58:51.000000000 +0000 @@ -810,7 +810,7 @@ user(name) #ifdef USE_PAM if (appl_pam_enabled(kcontext, "ftpd")) { if (appl_pam_acct_mgmt(FTP_PAM_SERVICE, 0, - pw->pw_name, "", + name, "", hostname, NULL, FTP_PAM_SERVICE) != 0) { @@ -1093,7 +1093,7 @@ pass(passwd) * kpass fails and the user has no local password * kpass fails and the provided password doesn't match pw */ - if ((pw == NULL) || + if ((pw == NULL) || ( #ifdef USE_PAM appl_pam_enabled(kcontext, "ftpd") ? (appl_pam_authenticate(FTP_PAM_SERVICE, 0, @@ -1105,7 +1105,7 @@ pass(passwd) (!kpass(pw->pw_name, passwd) && (want_creds || !*pw->pw_passwd || - strcmp(xpasswd, pw->pw_passwd)))) { + strcmp(xpasswd, pw->pw_passwd))))) { pw = NULL; sleep(5); if (++login_attempts >= 3) {