diff options
Diffstat (limited to 'sshd.c')
-rw-r--r-- | sshd.c | 43 |
1 files changed, 30 insertions, 13 deletions
@@ -11,7 +11,7 @@ | |||
11 | */ | 11 | */ |
12 | 12 | ||
13 | #include "includes.h" | 13 | #include "includes.h" |
14 | RCSID("$Id: sshd.c,v 1.33 1999/12/04 09:24:48 damien Exp $"); | 14 | RCSID("$Id: sshd.c,v 1.34 1999/12/07 03:56:27 damien Exp $"); |
15 | 15 | ||
16 | #include "xmalloc.h" | 16 | #include "xmalloc.h" |
17 | #include "rsa.h" | 17 | #include "rsa.h" |
@@ -1551,24 +1551,41 @@ do_authloop(struct passwd * pw) | |||
1551 | get_remote_port(), | 1551 | get_remote_port(), |
1552 | user); | 1552 | user); |
1553 | 1553 | ||
1554 | #ifdef HAVE_LIBPAM | 1554 | #ifndef HAVE_LIBPAM |
1555 | do_pam_account_and_session(pw->pw_name, client_user); | 1555 | if (authenticated) |
1556 | return; | ||
1556 | 1557 | ||
1557 | /* Clean up */ | 1558 | if (attempt > AUTH_FAIL_MAX) |
1558 | if (client_user != NULL) | 1559 | packet_disconnect(AUTH_FAIL_MSG, pw->pw_name); |
1559 | xfree(client_user); | 1560 | #else /* HAVE_LIBPAM */ |
1561 | if (authenticated) { | ||
1562 | do_pam_account_and_session(pw->pw_name, client_user); | ||
1560 | 1563 | ||
1561 | if (password != NULL) { | 1564 | /* Clean up */ |
1562 | memset(password, 0, strlen(password)); | 1565 | if (client_user != NULL) |
1563 | xfree(password); | 1566 | xfree(client_user); |
1564 | } | ||
1565 | #endif /* HAVE_LIBPAM */ | ||
1566 | 1567 | ||
1567 | if (authenticated) | 1568 | if (password != NULL) { |
1569 | memset(password, 0, strlen(password)); | ||
1570 | xfree(password); | ||
1571 | } | ||
1572 | |||
1568 | return; | 1573 | return; |
1574 | } | ||
1569 | 1575 | ||
1570 | if (attempt > AUTH_FAIL_MAX) | 1576 | if (attempt > AUTH_FAIL_MAX) { |
1577 | /* Clean up */ | ||
1578 | if (client_user != NULL) | ||
1579 | xfree(client_user); | ||
1580 | |||
1581 | if (password != NULL) { | ||
1582 | memset(password, 0, strlen(password)); | ||
1583 | xfree(password); | ||
1584 | } | ||
1585 | |||
1571 | packet_disconnect(AUTH_FAIL_MSG, pw->pw_name); | 1586 | packet_disconnect(AUTH_FAIL_MSG, pw->pw_name); |
1587 | } | ||
1588 | #endif /* HAVE_LIBPAM */ | ||
1572 | 1589 | ||
1573 | /* Send a message indicating that the authentication attempt failed. */ | 1590 | /* Send a message indicating that the authentication attempt failed. */ |
1574 | packet_start(SSH_SMSG_FAILURE); | 1591 | packet_start(SSH_SMSG_FAILURE); |