[openssh-commits] [openssh] 04/04: upstream: add regress test for servers that hang durig banner write;
git+noreply at mindrot.org
git+noreply at mindrot.org
Tue Aug 11 09:30:19 AEST 2026
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
commit bd714fadddcafe44fd572b79656a591110cff048
Author: djm at openbsd.org <djm at openbsd.org>
AuthorDate: Mon Aug 10 23:28:15 2026 +0000
upstream: add regress test for servers that hang durig banner write;
from Thomas Yiu
OpenBSD-Regress-ID: 86a25553c75bddc6fc239dc272aca97c61047d22
---
regress/keyscan.sh | 39 ++++++++++++++++++++++++++++++++++++++-
1 file changed, 38 insertions(+), 1 deletion(-)
diff --git a/regress/keyscan.sh b/regress/keyscan.sh
index 411c8222f..539d80c7f 100644
--- a/regress/keyscan.sh
+++ b/regress/keyscan.sh
@@ -1,4 +1,4 @@
-# $OpenBSD: keyscan.sh,v 1.14 2026/04/27 05:49:41 dtucker Exp $
+# $OpenBSD: keyscan.sh,v 1.15 2026/08/10 23:28:15 djm Exp $
# Placed in the Public Domain.
tid="keyscan"
@@ -25,3 +25,40 @@ for t in $SSH_KEYTYPES; do
fail "ssh-keyscan -t $t failed with: $r"
fi
done
+
+trace "keyscan timeout for partial pre-KEX banner"
+keyscan_port=`expr $PORT + 1`
+keyscan_server_log=$OBJ/keyscan-server.log
+(printf x; sleep 5) | \
+ $NC -l 127.0.0.1 $keyscan_port >$keyscan_server_log 2>&1 &
+keyscan_server_pid=$!
+sleep 1
+if ! kill -0 $keyscan_server_pid >/dev/null 2>&1; then
+ wait $keyscan_server_pid
+ fatal "keyscan test server failed to start"
+fi
+${SSHKEYSCAN} -t ed25519 -T 1 -p $keyscan_port 127.0.0.1 \
+ >/dev/null 2>&1 &
+keyscan_pid=$!
+i=0
+while kill -0 $keyscan_pid >/dev/null 2>&1 && test $i -lt 10; do
+ sleep 1
+ i=`expr $i + 1`
+done
+if kill -0 $keyscan_pid >/dev/null 2>&1; then
+ kill $keyscan_pid >/dev/null 2>&1
+ wait $keyscan_pid
+ r=0
+else
+ wait $keyscan_pid
+ r=$?
+fi
+kill $keyscan_server_pid >/dev/null 2>&1
+wait $keyscan_server_pid
+if ! grep "OpenSSH-keyscan" $keyscan_server_log >/dev/null 2>&1; then
+ fail "ssh-keyscan did not connect to partial banner server"
+elif test $r -eq 0; then
+ fail "ssh-keyscan did not enforce timeout for partial banner"
+elif test $r -ne 1; then
+ fail "ssh-keyscan partial banner returned unexpected status: $r"
+fi
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list