upstream: pass SSH_SK_HELPER explicitly past $SUDO to avoid it getting

cleared; with dtucker@

OpenBSD-Regress-ID: 03178a0580324bf0dff28f7eac6c3edbc5407f8e
This commit is contained in:
djm@openbsd.org 2020-01-21 08:06:27 +00:00 committed by Damien Miller
parent b5fcb0ac1c
commit f8c11461aa
3 changed files with 12 additions and 6 deletions

View File

@ -1,4 +1,4 @@
# $OpenBSD: integrity.sh,v 1.23 2017/04/30 23:34:55 djm Exp $
# $OpenBSD: integrity.sh,v 1.24 2020/01/21 08:06:27 djm Exp $
# Placed in the Public Domain.
tid="integrity"
@ -18,7 +18,7 @@ macs="$macs `${SSH} -Q cipher-auth`"
# >> $OBJ/ssh_proxy
# sshd-command for proxy (see test-exec.sh)
cmd="$SUDO sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy"
cmd="$SUDO env SSH_SK_HELPER="$SSH_SK_HELPER" sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy"
for m in $macs; do
trace "test $tid: mac $m"

View File

@ -1,4 +1,4 @@
# $OpenBSD: test-exec.sh,v 1.69 2019/12/16 02:39:05 djm Exp $
# $OpenBSD: test-exec.sh,v 1.70 2020/01/21 08:06:27 djm Exp $
# Placed in the Public Domain.
#SUDO=sudo
@ -598,7 +598,7 @@ fi
# create a proxy version of the client config
(
cat $OBJ/ssh_config
echo proxycommand ${SUDO} sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy
echo proxycommand ${SUDO} env SSH_SK_HELPER=\"$SSH_SK_HELPER\" sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy
) > $OBJ/ssh_proxy
# check proxy config
@ -608,7 +608,8 @@ start_sshd ()
{
# start sshd
$SUDO ${SSHD} -f $OBJ/sshd_config "$@" -t || fatal "sshd_config broken"
$SUDO ${SSHD} -f $OBJ/sshd_config "$@" -E$TEST_SSHD_LOGFILE
$SUDO env SSH_SK_HELPER="$SSH_SK_HELPER" \
${SSHD} -f $OBJ/sshd_config "$@" -E$TEST_SSHD_LOGFILE
trace "wait for sshd"
i=0;

7
sshd.c
View File

@ -1059,7 +1059,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s)
{
fd_set *fdset;
int i, j, ret, maxfd;
int startups = 0, listening = 0, lameduck = 0;
int ostartups = -1, startups = 0, listening = 0, lameduck = 0;
int startup_p[2] = { -1 , -1 };
char c = 0;
struct sockaddr_storage from;
@ -1084,6 +1084,11 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s)
* the daemon is killed with a signal.
*/
for (;;) {
if (ostartups != startups) {
setproctitle("[listener] %d/%d startups",
startups, options.max_startups);
ostartups = startups;
}
if (received_sighup) {
if (!lameduck) {
debug("Received SIGHUP; waiting for children");