summaryrefslogtreecommitdiff
path: root/security/hpn-ssh
diff options
context:
space:
mode:
authorDirk Meyer <dinoex@FreeBSD.org>2002-07-24 20:47:22 +0000
committerDirk Meyer <dinoex@FreeBSD.org>2002-07-24 20:47:22 +0000
commit9d5e8cafdc26e190fe2f8f26a5287ef644ab5931 (patch)
tree10e3949be192101df666c53c042f3de8eecbe0bd /security/hpn-ssh
parentUpdate to 2.0.2. (diff)
- add pam_cleanup from CURRENT
- Fix build problems < 4.0 PR: 40576
Notes
Notes: svn path=/head/; revision=63497
Diffstat (limited to 'security/hpn-ssh')
-rw-r--r--security/hpn-ssh/Makefile2
-rw-r--r--security/hpn-ssh/files/auth2-pam-freebsd.c15
-rw-r--r--security/hpn-ssh/files/patch-loginrec.c17
3 files changed, 29 insertions, 5 deletions
diff --git a/security/hpn-ssh/Makefile b/security/hpn-ssh/Makefile
index a082ab89b890..7a0e3c5d13a3 100644
--- a/security/hpn-ssh/Makefile
+++ b/security/hpn-ssh/Makefile
@@ -7,7 +7,7 @@
PORTNAME= openssh
PORTVERSION= 3.4p1
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= security ipv6
MASTER_SITES= ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
ftp://ftp.op.net/pub/OpenBSD/OpenSSH/portable/ \
diff --git a/security/hpn-ssh/files/auth2-pam-freebsd.c b/security/hpn-ssh/files/auth2-pam-freebsd.c
index 94ce18480e53..f3f06ad05751 100644
--- a/security/hpn-ssh/files/auth2-pam-freebsd.c
+++ b/security/hpn-ssh/files/auth2-pam-freebsd.c
@@ -33,7 +33,7 @@
*/
#include "includes.h"
-RCSID("$FreeBSD: /tmp/pcvs/ports/security/hpn-ssh/files/Attic/auth2-pam-freebsd.c,v 1.2 2002-07-07 18:55:26 dinoex Exp $");
+RCSID("$FreeBSD: /tmp/pcvs/ports/security/hpn-ssh/files/Attic/auth2-pam-freebsd.c,v 1.3 2002-07-24 20:47:22 dinoex Exp $");
#ifdef USE_PAM
#include <security/pam_appl.h>
@@ -156,6 +156,17 @@ pam_child(struct pam_ctxt *ctxt)
exit(0);
}
+static void
+pam_cleanup(void *ctxtp)
+{
+ struct pam_ctxt *ctxt = ctxtp;
+ int status;
+
+ close(ctxt->pam_sock);
+ kill(ctxt->pam_pid, SIGHUP);
+ waitpid(ctxt->pam_pid, &status, 0);
+}
+
static void *
pam_init_ctx(Authctxt *authctxt)
{
@@ -192,6 +203,7 @@ pam_init_ctx(Authctxt *authctxt)
}
ctxt->pam_sock = socks[0];
close(socks[1]);
+ fatal_add_cleanup(pam_cleanup, ctxt);
return (ctxt);
}
@@ -297,6 +309,7 @@ pam_free_ctx(void *ctxtp)
struct pam_ctxt *ctxt = ctxtp;
int status;
+ fatal_remove_cleanup(pam_cleanup, ctxt);
close(ctxt->pam_sock);
kill(ctxt->pam_pid, SIGHUP);
waitpid(ctxt->pam_pid, &status, 0);
diff --git a/security/hpn-ssh/files/patch-loginrec.c b/security/hpn-ssh/files/patch-loginrec.c
index 46247c11d571..9327d9217916 100644
--- a/security/hpn-ssh/files/patch-loginrec.c
+++ b/security/hpn-ssh/files/patch-loginrec.c
@@ -1,12 +1,23 @@
--- loginrec.c.orig Tue Apr 23 15:09:19 2002
-+++ loginrec.c Mon Jul 15 21:29:20 2002
-@@ -654,7 +655,8 @@
++++ loginrec.c Wed Jul 24 08:13:44 2002
+@@ -171,6 +171,7 @@
+
+ #ifdef HAVE_LIBUTIL_H
+ # include <libutil.h>
++# include <osreldate.h>
+ #endif
+
+ /**
+@@ -654,7 +655,12 @@
/* Use strncpy because we don't necessarily want null termination */
strncpy(ut->ut_name, li->username, MIN_SIZEOF(ut->ut_name, li->username));
# ifdef HAVE_HOST_IN_UTMP
-- strncpy(ut->ut_host, li->hostname, MIN_SIZEOF(ut->ut_host, li->hostname));
++# if defined(__FreeBSD__) && __FreeBSD_version <= 400000
+ strncpy(ut->ut_host, li->hostname, MIN_SIZEOF(ut->ut_host, li->hostname));
++# else
+ realhostname_sa(ut->ut_host, sizeof ut->ut_host,
+ &li->hostaddr.sa, li->hostaddr.sa.sa_len);
++# endif
# endif
# ifdef HAVE_ADDR_IN_UTMP
/* this is just a 32-bit IP address */