- Various small cleanups to bring diff (against OpenBSD) size down.

This commit is contained in:
Damien Miller 1999-11-15 15:40:55 +11:00
parent 2ccf661cbe
commit 3bd49ec5c4
6 changed files with 33 additions and 21 deletions

View File

@ -22,6 +22,7 @@
[ssh.c] print _all_ bad config-options in ssh(1), too
[sshconnect.c] disconnect if getpeername() fails
- OpenBSD's changes to sshd.c broke the PAM stuff, re-merged it.
- Various small cleanups to bring diff (against OpenBSD) size down.
19991114
- Solaris compilation fixes (still imcomplete)

View File

@ -55,7 +55,7 @@ AC_CHECK_LIB(dl, dlopen, , )
AC_CHECK_LIB(pam, pam_authenticate, , )
dnl Checks for header files.
AC_CHECK_HEADERS(pty.h endian.h paths.h lastlog.h shadow.h)
AC_CHECK_HEADERS(pty.h endian.h paths.h lastlog.h shadow.h netgroup.h)
dnl Check for ut_host field in utmp
AC_MSG_CHECKING([whether utmp.h has ut_host field])

View File

@ -41,7 +41,6 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <assert.h>
#include <signal.h>
#include <termios.h>
#include <stdlib.h>
@ -55,6 +54,9 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg }
#include "config.h"
#ifdef HAVE_NETGROUP_H
# include <netgroup.h>
#endif
#ifdef HAVE_PATHS_H
# include <paths.h>
#endif

View File

@ -13,12 +13,13 @@ Interface for the packet protocol functions.
*/
/* RCSID("$Id: packet.h,v 1.2 1999/10/28 03:25:17 damien Exp $"); */
/* RCSID("$Id: packet.h,v 1.3 1999/11/15 04:40:55 damien Exp $"); */
#include "config.h"
#ifndef PACKET_H
#define PACKET_H
#include "config.h"
#ifdef HAVE_OPENSSL
#include <openssl/bn.h>
#endif

3
pty.c
View File

@ -14,10 +14,9 @@ Allocating a pseudo-terminal, and making it the controlling tty.
*/
#include "includes.h"
RCSID("$Id: pty.c,v 1.2 1999/11/08 04:30:59 damien Exp $");
RCSID("$Id: pty.c,v 1.3 1999/11/15 04:40:55 damien Exp $");
#ifdef HAVE_PTY_H
/* Unfortunate namespace collision */
#include <pty.h>
#endif /* HAVE_PTY_H */

39
sshd.c
View File

@ -18,7 +18,7 @@ agent connections.
*/
#include "includes.h"
RCSID("$Id: sshd.c,v 1.18 1999/11/15 04:25:10 damien Exp $");
RCSID("$Id: sshd.c,v 1.19 1999/11/15 04:40:55 damien Exp $");
#include "xmalloc.h"
#include "rsa.h"
@ -133,8 +133,8 @@ void do_child(const char *command, struct passwd *pw, const char *term,
#ifdef HAVE_LIBPAM
static int pamconv(int num_msg, const struct pam_message **msg,
struct pam_response **resp, void *appdata_ptr);
void do_pam_account_and_session(const char *username,
const char *remote_user, const char *remote_host);
void do_pam_account_and_session(char *username, char *remote_user,
const char *remote_host);
void pam_cleanup_proc(void *context);
static struct pam_conv conv = {
@ -230,7 +230,8 @@ void pam_cleanup_proc(void *context)
}
}
void do_pam_account_and_session(const char *username, const char *remote_user, const char *remote_host)
void do_pam_account_and_session(char *username, char *remote_user,
const char *remote_host)
{
int pam_retval;
@ -1201,12 +1202,17 @@ do_authentication(char *user)
pw = &pwcopy;
#ifdef HAVE_LIBPAM
debug("Starting up PAM with username \"%.200s\"", pw->pw_name);
{
int pam_retval;
debug("Starting up PAM with username \"%.200s\"", pw->pw_name);
if (pam_start("sshd", pw->pw_name, &conv, (pam_handle_t**)&pamh) != PAM_SUCCESS)
fatal("PAM initialisation failed: %.200s", pam_strerror((pam_handle_t *)pamh, pam_retval));
pam_retval = pam_start("sshd", pw->pw_name, &conv, (pam_handle_t**)&pamh);
if (pam_retval != PAM_SUCCESS)
fatal("PAM initialisation failed: %.200s", pam_strerror((pam_handle_t *)pamh, pam_retval));
fatal_add_cleanup(&pam_cleanup_proc, NULL);
fatal_add_cleanup(&pam_cleanup_proc, NULL);
}
#endif
/* If we are not running as root, the user must have the same uid as the
@ -1263,8 +1269,11 @@ do_authloop(struct passwd *pw)
unsigned int client_host_key_bits;
BIGNUM *client_host_key_e, *client_host_key_n;
BIGNUM *n;
char *client_user, *password;
char *client_user = NULL, *password = NULL;
int plen, dlen, nlen, ulen, elen;
#ifdef HAVE_LIBPAM
int pam_retval;
#endif /* HAVE_LIBPAM */
/* Indicate that authentication is needed. */
packet_start(SSH_SMSG_FAILURE);
@ -1435,18 +1444,18 @@ do_authloop(struct passwd *pw)
packet_integrity_check(plen, 4 + dlen, type);
#ifdef HAVE_LIBPAM
/* Do PAM auth with password */
/* Do PAM auth with password */
pampasswd = password;
pam_retval = pam_authenticate((pam_handle_t *)pamh, 0);
pam_retval = pam_authenticate((pam_handle_t *)pamh, 0);
if (pam_retval == PAM_SUCCESS)
{
log("PAM Password authentication accepted for user \"%.100s\"", user);
log("PAM Password authentication accepted for user \"%.100s\"", pw->pw_name);
authenticated = 1;
break;
}
log("PAM Password authentication for \"%.100s\" failed: %s",
user, pam_strerror((pam_handle_t *)pamh, pam_retval));
log("PAM Password authentication for \"%.100s\" failed: %s",
pw->pw_name, pam_strerror((pam_handle_t *)pamh, pam_retval));
break;
#else /* HAVE_LIBPAM */
/* Try authentication with the password. */