ports/93164: openssh-portable does not record session correctly.
Tsurutani Naoki
turutani at scphys.kyoto-u.ac.jp
Sat Feb 11 03:00:21 UTC 2006
>Number: 93164
>Category: ports
>Synopsis: openssh-portable does not record session correctly.
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sat Feb 11 03:00:18 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Tsurutani Naoki
>Release: FreeBSD 5.4-STABLE i386
>Organization:
>Environment:
System: FreeBSD polymer3.scphys.kyoto-u.ac.jp 5.4-STABLE FreeBSD 5.4-STABLE #16: Wed Jan 18 18:03:11 JST 2006 turutani at polymer3.scphys.kyoto-u.ac.jp:/usr/local/work/usr/obj/usr/src/sys/POLYMER i386
>Description:
login using openssh-portable is not recorded correctly.
after login, running w return :
% w
8:13AM up 23 days, 13:54, 1 user, load averages: 0.01, 0.01, 0.01
USER TTY FROM LOGIN@ IDLE WHAT
turutani p0 - 01 170 - w
>How-To-Repeat:
login through sshd.
>Fix:
catch-up to openssh-SNAP-20060211 etc.
here is a patch extracted:
--- config.h.in.orig Wed Feb 1 20:33:49 2006
+++ config.h.in Fri Feb 10 22:01:01 2006
@@ -536,12 +536,6 @@
/* Define to 1 if you have the <netgroup.h> header file. */
#undef HAVE_NETGROUP_H
-/* Define to 1 if you have the <netinet/in_systm.h> header file. */
-#undef HAVE_NETINET_IN_SYSTM_H
-
-/* Define to 1 if you have the <net/if.h> header file. */
-#undef HAVE_NET_IF_H
-
/* Define if you are on NeXT */
#undef HAVE_NEXT
@@ -1086,7 +1080,7 @@
#undef MISSING_NFDBITS
/* Need setpgrp to acquire controlling tty */
-#undef NEED_SETPRGP
+#undef NEED_SETPGRP
/* Define if the concept of ports only accessible to superusers isn't known */
#undef NO_IPPORT_RESERVED_CONCEPT
--- configure.orig Sat Feb 11 10:17:19 2006
+++ configure Fri Feb 10 22:00:58 2006
@@ -311,7 +311,7 @@
# include <unistd.h>
#endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT build build_cpu build_vendor build_os host host_cpu host_vendor host_os AWK CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR CAT KILL PERL SED ENT TEST_MINUS_S_SH SH TEST_SHELL PATH_GROUPADD_PROG PATH_USERADD_PROG MAKE_PACKAGE_SUPPORTED STARTUP_SCRIPT_SHELL LOGIN_PROGRAM_FALLBACK PATH_PASSWD_PROG LD EGREP LIBWRAP LIBEDIT LIBPAM INSTALL_SSH_RAND_HELPER SSH_PRIVSEP_USER PROG_LS PROG_NETSTAT PROG_ARP PROG_IFCONFIG PROG_JSTAT PROG_PS PROG_SAR PROG_W PROG_WHO PROG_LAST PROG_LASTLOG PROG_DF PROG_VMSTAT PROG_UPTIME PROG_IPCS PROG_TAIL INSTALL_SSH_PRNG_CMDS OPENSC_CONFIG P!
RIVSEP_PATH xauth_path STRIP_OPT XAUTH_PATH NROFF MANTYPE mansubdir user_path piddir LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT build build_cpu build_vendor build_os host host_cpu host_vendor host_os AWK CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA EGREP AR CAT KILL PERL SED ENT TEST_MINUS_S_SH SH TEST_SHELL PATH_GROUPADD_PROG PATH_USERADD_PROG MAKE_PACKAGE_SUPPORTED STARTUP_SCRIPT_SHELL LOGIN_PROGRAM_FALLBACK PATH_PASSWD_PROG LD LIBWRAP LIBEDIT LIBPAM INSTALL_SSH_RAND_HELPER SSH_PRIVSEP_USER PROG_LS PROG_NETSTAT PROG_ARP PROG_IFCONFIG PROG_JSTAT PROG_PS PROG_SAR PROG_W PROG_WHO PROG_LAST PROG_LASTLOG PROG_DF PROG_VMSTAT PROG_UPTIME PROG_IPCS PROG_TAIL INSTALL_SSH_PRNG_CMDS OPENSC_CONFIG P!
RIVSEP_PATH xauth_path STRIP_OPT XAUTH_PATH NROFF MANTYPE mansubdir user_path piddir LIBOBJS LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -3036,6 +3036,21 @@
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+if test "${ac_cv_prog_egrep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+ then ac_cv_prog_egrep='grep -E'
+ else ac_cv_prog_egrep='egrep'
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+ EGREP=$ac_cv_prog_egrep
+
+
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo "$as_me:$LINENO: checking for $ac_word" >&5
@@ -5640,21 +5656,6 @@
esac
# tun(4) forwarding compat code
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- if echo a | (grep -E '(a|b)') >/dev/null 2>&1
- then ac_cv_prog_egrep='grep -E'
- else ac_cv_prog_egrep='egrep'
- fi
-fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
-
-
echo "$as_me:$LINENO: checking for ANSI C header files" >&5
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
if test "${ac_cv_header_stdc+set}" = set; then
@@ -6064,7 +6065,7 @@
mips-sony-bsd|mips-sony-newsos4)
cat >>confdefs.h <<\_ACEOF
-#define NEED_SETPRGP 1
+#define NEED_SETPGRP 1
_ACEOF
SONY=1
@@ -7207,7 +7208,7 @@
;;
-*-*-nto-qnx)
+*-*-nto-qnx*)
cat >>confdefs.h <<\_ACEOF
#define USE_PIPES 1
_ACEOF
@@ -7231,6 +7232,10 @@
#define MISSING_FD_MASK 1
_ACEOF
+ cat >>confdefs.h <<\_ACEOF
+#define DISABLE_LASTLOG 1
+_ACEOF
+
;;
*-*-ultrix*)
@@ -7245,7 +7250,7 @@
_ACEOF
cat >>confdefs.h <<\_ACEOF
-#define NEED_SETPRGP 1
+#define NEED_SETPGRP 1
_ACEOF
@@ -7451,16 +7453,13 @@
glob.h \
ia.h \
iaf.h \
- lastlog.h \
limits.h \
login.h \
login_cap.h \
maillock.h \
ndir.h \
- net/if.h \
netdb.h \
netgroup.h \
- netinet/in_systm.h \
pam/pam_appl.h \
paths.h \
pty.h \
@@ -7650,6 +7649,73 @@
done
+# lastlog.h requires sys/time.h to be included first on Solaris
+
+for ac_header in lastlog.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+
+
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_Header=yes"
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+eval "$as_ac_Header=no"
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
# sys/ptms.h requires sys/stream.h to be included first on Solaris
for ac_header in sys/ptms.h
@@ -15093,7 +15159,7 @@
#include <string.h>
#include <openssl/evp.h>
-int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL)}
+int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL);}
_ACEOF
rm -f conftest.$ac_objext
@@ -27440,6 +27506,7 @@
s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
s, at INSTALL_DATA@,$INSTALL_DATA,;t t
+s, at EGREP@,$EGREP,;t t
s, at AR@,$AR,;t t
s, at CAT@,$CAT,;t t
s, at KILL@,$KILL,;t t
@@ -27456,7 +27524,6 @@
s, at LOGIN_PROGRAM_FALLBACK@,$LOGIN_PROGRAM_FALLBACK,;t t
s, at PATH_PASSWD_PROG@,$PATH_PASSWD_PROG,;t t
s, at LD@,$LD,;t t
-s, at EGREP@,$EGREP,;t t
s, at LIBWRAP@,$LIBWRAP,;t t
s, at LIBEDIT@,$LIBEDIT,;t t
s, at LIBPAM@,$LIBPAM,;t t
--- configure.ac.orig Sat Feb 11 09:53:22 2006
+++ configure.ac Wed Feb 8 20:11:28 2006
@@ -344,7 +344,7 @@
fi
;;
mips-sony-bsd|mips-sony-newsos4)
- AC_DEFINE(NEED_SETPRGP, 1, [Need setpgrp to acquire controlling tty])
+ AC_DEFINE(NEED_SETPGRP, 1, [Need setpgrp to acquire controlling tty])
SONY=1
;;
*-*-netbsd*)
@@ -576,18 +576,19 @@
AC_DEFINE(BROKEN_SETREGID)
;;
-*-*-nto-qnx)
+*-*-nto-qnx*)
AC_DEFINE(USE_PIPES)
AC_DEFINE(NO_X11_UNIX_SOCKETS)
AC_DEFINE(MISSING_NFDBITS, 1, [Define on *nto-qnx systems])
AC_DEFINE(MISSING_HOWMANY, 1, [Define on *nto-qnx systems])
AC_DEFINE(MISSING_FD_MASK, 1, [Define on *nto-qnx systems])
+ AC_DEFINE(DISABLE_LASTLOG)
;;
*-*-ultrix*)
AC_DEFINE(BROKEN_GETGROUPS, 1, [getgroups(0,NULL) will return -1])
AC_DEFINE(BROKEN_MMAP, 1, [Ultrix mmap can't map files])
- AC_DEFINE(NEED_SETPRGP)
+ AC_DEFINE(NEED_SETPGRP)
AC_DEFINE(HAVE_SYS_SYSLOG_H, 1, [Force use of sys/syslog.h on Ultrix])
;;
@@ -673,16 +674,13 @@
glob.h \
ia.h \
iaf.h \
- lastlog.h \
limits.h \
login.h \
login_cap.h \
maillock.h \
ndir.h \
- net/if.h \
netdb.h \
netgroup.h \
- netinet/in_systm.h \
pam/pam_appl.h \
paths.h \
pty.h \
@@ -724,6 +722,13 @@
vis.h \
)
+# lastlog.h requires sys/time.h to be included first on Solaris
+AC_CHECK_HEADERS(lastlog.h, [], [], [
+#ifdef HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+])
+
# sys/ptms.h requires sys/stream.h to be included first on Solaris
AC_CHECK_HEADERS(sys/ptms.h, [], [], [
#ifdef HAVE_SYS_STREAM_H
@@ -1833,7 +1838,7 @@
[AC_LANG_SOURCE([[
#include <string.h>
#include <openssl/evp.h>
-int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL)}
+int main(void) { exit(EVP_aes_192_cbc() == NULL || EVP_aes_256_cbc() == NULL);}
]])],
[
AC_MSG_RESULT(no)
--- session.c.orig Sat Dec 24 12:59:12 2005
+++ session.c Wed Feb 8 08:17:44 2006
@@ -2176,7 +2176,6 @@
/* disconnect channel */
debug("session_exit_message: release channel %d", s->chanid);
- s->pid = 0;
/*
* Adjust cleanup callback attachment to send close messages when
@@ -2238,6 +2237,7 @@
session_exit_message(s, status);
if (s->ttyfd != -1)
session_pty_cleanup(s);
+ s->pid = 0;
}
/*
putting this as files/pacth-wtmp can solve this problem, as i confirmed.
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list