Skip to content

Commit 7033d00

Browse files
authored
Merge pull request #737 from tgauth/merge-9.8
Merge upstream 9.8
2 parents d8b0147 + f168dca commit 7033d00

File tree

147 files changed

+51956
-3633
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

147 files changed

+51956
-3633
lines changed

.depend

Lines changed: 12 additions & 7 deletions
Large diffs are not rendered by default.

.git_allowed_signers

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
[email protected] ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKecyjh9aNmD4rb8WblA8v91JjRb0Cd2JtkzqxcggGeG
2+
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBDV81zWQ1+XVfWH5z4L4klDQ/z/6l2GLphfSTX/Rmq6kL5H8mkfzUlryxLlkN8cD9srtVJBAmwJWfJBNsCo958YAAAAEc3NoOg==
3+
24
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBLnJo3ZVDENYZGXm5uO9lU7b0iDFq5gHpTu1MaHPWTEfPdvw+AjFQQ/q5YizuMJkXGsMdYmblJEJZYHpm9IS7ZkAAAAEc3NoOg==
35
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBJoAXBTQalfg+kC5wy1vE7HkIHtVnmV6AUuuIo9KQ1P+70juHwvsFKpsGaqQbrHJkTVgYDGVP02XHj8+Fb18yBIAAAAEc3NoOg==
46
[email protected] [email protected] AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBH+z1I48s6ydOhP5SJmI02zVCLf0K15B+UMHgoTIKVfUIv5oDoVX7e9f+7QiRmTeEOdZfQydiaVqsfi7qPSve+0AAAAEc3NoOg==

.git_allowed_signers.asc

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
-----BEGIN PGP SIGNATURE-----
22

3-
iQIzBAABCgAdFiEEcWi5g4FaXu9ZpK39Kj9BTnNgYLoFAmMMMiIACgkQKj9BTnNg
4-
YLpyGhAAhZ1RxmD62JnT0gnor1aD0inq1fGPRadaFvXH2OScPcxXMIZWx+otnyZ/
5-
H9s0bIti42dPHqurgh92KS2mDGVIW8Y8MvxFUr678+hdem1U7Xvjoo0uaveNhJhe
6-
GxuQDOvXKRmmfL2c6w3wnFChFA1o3K+JNshjCHhWz7u6+UmY0Q9yIxqbSi+vmEPP
7-
NfWPfGdu4h8r7q11UgTxRSUQkfZXMqpBtb367B9BLduGuKRFKEJNyi6WpjBrqy38
8-
BvEbAaL52KX8hEp3TKMjo38RbOK+veSoPV5zlLui0WlEwwasgljal3f4RkqCAJob
9-
hqpFJRogM5XNnA2e68TDTf3buJ3wRRjuK39/CusOJz5v4i6+VCdte+BET1Y4gD6y
10-
v8KV4pRyumcdbN3khFUkmaQsjo+fyQjWNrgOvv60J2xUWZdchn8lxHOxrfRVKnOi
11-
BD4bdks7tPQY/XsS5GNJIp21Ji9HGyBajjHo0BlesLodw7FEOf6YE18A3n9qzosR
12-
RliuP4Hs/Z4sCUuDTbpKtQiUVs40kBbkhEL8kS8FsXz3VO89hAWaUqNUYom8AkKv
13-
nfDjrZDBLXuVj1Mi8qNPXxqrB/1Cza2/W4U7SK4TlMFXfoXXWxxhefN5vIdMhAJB
14-
u9Mdz1pY9mowKbd0c0dR+3fauvjM133dzKuyeDHMqDa5JPyd59o=
15-
=kgnS
3+
iQIzBAABCgAdFiEEcWi5g4FaXu9ZpK39Kj9BTnNgYLoFAmYHnZ8ACgkQKj9BTnNg
4+
YLquuQ/6A8E6P2jcgn3wmbbCTXP7kmxoh3nmw/e6PC8CEua1512oT3GHOKVD5cGK
5+
cgYRObpWvjOjg7L1HRABftq7a9M2zfsGnY/WNe3/fbetfkyY8hG8c31vA1ePIOt2
6+
AjBLCWFblH0CtyH/MssoQ19JCLtXK/GmekB1Q0JzyOog7w/0r3CKuUnZ0juCYR1R
7+
4FBePl5l3nFSZEcFEdptGlNGeuolS5XBCqB9Y91TCzkVkH5eXUUW+shgjNhWCEhT
8+
pZvkxfhsmOEnwNofyPdgKVfDBVkHmvuC67EU395mJVN4c2NZ8pOztb9hOt3xr980
9+
q44I4kT2NpaApCx1dWIGhMy/37LJ8heI0W1B+ofTA5n34/RU8UXH3SCkj2AK6Ao5
10+
H2u8vbmuWKUCiECmrw35EeKGmtuK/bWJzx3KBP7fx5J9S3mWUgT4W4xlWNN9RWoU
11+
sSvH1ppie5ARINVaAWl5k44fk60ahTf80DbQBIOZBmQn7myZZka+yGcQbAiZZ1Gc
12+
0l8+Nf5Ao1ckmuyY5o8FyWdsyDeK3+MqjPn5Rr1CqbKCn2VnqrVWbI33Eyu8c96U
13+
bxVgU5H1BDhNjJC8UrT3LFPvJMO8p3a0IJ3eHydjk2jVOhOdBZmA0yoqUTrhPpXq
14+
ymIHESjDJR8TDe4TCfb46o9oEC3cdbDwgnzPqdg0n+0uIsJLYiU=
15+
=gl+l
1616
-----END PGP SIGNATURE-----

.github/ci-status.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ master :
66
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh)
77
[![Coverity Status](https://scan.coverity.com/projects/21341/badge.svg)](https://scan.coverity.com/projects/openssh-portable)
88

9-
9.4 :
10-
[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_4)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_4)
11-
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_4)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_4)
9+
9.8 :
10+
[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_8)
11+
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_8)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_8)
1212

13-
9.3 :
14-
[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_3)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_3)
15-
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_3)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_3)
13+
9.7 :
14+
[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml?query=branch:V_9_7)
15+
[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg?branch=V_9_7)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml?query=branch:V_9_7)

.github/configs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ case "$config" in
208208
# and hostbased (since valgrind won't let ssh exec keysign).
209209
# Slow ones are run separately to increase parallelism.
210210
SKIP_LTESTS="agent-timeout connection-timeout hostbased"
211+
SKIP_LTESTS="$SKIP_LTESTS penalty-expire"
211212
SKIP_LTESTS="$SKIP_LTESTS ${tests2} ${tests3} ${tests4} ${tests5}"
212213
;;
213214
valgrind-2)
@@ -289,7 +290,7 @@ case "${TARGET_HOST}" in
289290
hostkey-agent key-options keyscan knownhosts-command login-timeout
290291
reconfigure reexec rekey scp scp-uri scp3 sftp sftp-badcmds
291292
sftp-batch sftp-cmds sftp-glob sftp-perm sftp-uri stderr-data
292-
transfer"
293+
transfer penalty penalty-expire"
293294
SKIP_LTESTS="$(echo $T)"
294295
TEST_TARGET=t-exec
295296
SUDO=""

.github/run_test.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ set -ex
99
# If we want to test hostbased auth, set up the host for it.
1010
if [ ! -z "$SUDO" ] && [ ! -z "$TEST_SSH_HOSTBASED_AUTH" ]; then
1111
sshconf=/usr/local/etc
12+
$SUDO mkdir -p "${sshconf}"
1213
hostname | $SUDO tee $sshconf/shosts.equiv >/dev/null
1314
echo "EnableSSHKeysign yes" | $SUDO tee $sshconf/ssh_config >/dev/null
1415
$SUDO mkdir -p $sshconf

.github/workflows/c-cpp.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
name: C/C++ CI
22

33
on:
4-
workflow_dispatch:
5-
4+
workflow_dispatch: # disable for win32-openssh fork
5+
# push:
6+
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ]
7+
# pull_request:
8+
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ]
9+
610
jobs:
711
ci:
12+
name: "${{ matrix.target }} ${{ matrix.config }}"
813
if: github.repository != 'openssh/openssh-portable-selfhosted'
914
strategy:
1015
fail-fast: false
@@ -13,9 +18,9 @@ jobs:
1318
target:
1419
- ubuntu-20.04
1520
- ubuntu-22.04
16-
- macos-11
1721
- macos-12
1822
- macos-13
23+
- macos-14
1924
- windows-2019
2025
- windows-2022
2126
config: [default]
@@ -59,8 +64,8 @@ jobs:
5964
- { target: ubuntu-latest, config: libressl-3.5.3 }
6065
- { target: ubuntu-latest, config: libressl-3.6.1 }
6166
- { target: ubuntu-latest, config: libressl-3.7.2 }
62-
- { target: ubuntu-latest, config: libressl-3.8.3 }
63-
- { target: ubuntu-latest, config: libressl-3.9.0 }
67+
- { target: ubuntu-latest, config: libressl-3.8.4 }
68+
- { target: ubuntu-latest, config: libressl-3.9.1 }
6469
- { target: ubuntu-latest, config: openssl-master }
6570
- { target: ubuntu-latest, config: openssl-noec }
6671
- { target: ubuntu-latest, config: openssl-1.1.1 }
@@ -71,9 +76,12 @@ jobs:
7176
- { target: ubuntu-latest, config: openssl-3.1.0 }
7277
- { target: ubuntu-latest, config: openssl-3.1.5 }
7378
- { target: ubuntu-latest, config: openssl-3.2.1 }
79+
- { target: ubuntu-latest, config: openssl-3.3.0 }
7480
- { target: ubuntu-latest, config: openssl-1.1.1_stable }
7581
- { target: ubuntu-latest, config: openssl-3.0 } # stable branch
82+
- { target: ubuntu-latest, config: openssl-3.1 } # stable branch
7683
- { target: ubuntu-latest, config: openssl-3.2 } # stable branch
84+
- { target: ubuntu-latest, config: openssl-3.3 } # stable branch
7785
- { target: ubuntu-latest, config: putty-0.71 }
7886
- { target: ubuntu-latest, config: putty-0.72 }
7987
- { target: ubuntu-latest, config: putty-0.73 }
@@ -94,9 +102,9 @@ jobs:
94102
- { target: ubuntu-22.04, config: selinux }
95103
- { target: ubuntu-22.04, config: kitchensink }
96104
- { target: ubuntu-22.04, config: without-openssl }
97-
- { target: macos-11, config: pam }
98105
- { target: macos-12, config: pam }
99106
- { target: macos-13, config: pam }
107+
- { target: macos-14, config: pam }
100108
runs-on: ${{ matrix.target }}
101109
steps:
102110
- name: set cygwin git params

.github/workflows/cifuzz.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
name: CIFuzz
22
on:
3-
workflow_dispatch:
3+
workflow_dispatch: # disable for win32-openssh fork
4+
# push:
5+
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ]
6+
# pull_request:
7+
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/c-cpp.yaml' ]
48

59
jobs:
610
Fuzzing:

.github/workflows/selfhosted.yml

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,27 @@
11
name: C/C++ CI self-hosted
22

33
on:
4-
workflow_dispatch:
4+
workflow_dispatch: # disable for win32-openssh fork
5+
# push:
6+
# paths: [ '**.c', '**.h', '**.m4', '**.sh', '**/Makefile.in', 'configure.ac', '.github/configs', '.github/workflows/selfhosted.yml' ]
57

68
jobs:
79
selfhosted:
10+
name: "${{ matrix.target }} ${{ matrix.config }}"
811
if: github.repository == 'openssh/openssh-portable-selfhosted'
912
runs-on: ${{ matrix.host }}
1013
timeout-minutes: 600
1114
env:
15+
DEBUG_ACTIONS: false
1216
HOST: ${{ matrix.host }}
1317
TARGET_HOST: ${{ matrix.target }}
1418
TARGET_CONFIG: ${{ matrix.config }}
19+
TARGET_DOMAIN: ${{ startsWith(matrix.host, 'libvirt') && format('{0}-{1}-{2}', matrix.target, matrix.config, github.run_id) || matrix.target }}
20+
EPHEMERAL: ${{ startsWith(matrix.host, 'libvirt') }}
21+
PERSISTENT: ${{ startsWith(matrix.host, 'persist') }}
22+
REMOTE: ${{ startsWith(matrix.host, 'remote') }}
23+
VM: ${{ startsWith(matrix.host, 'libvirt') || startsWith(matrix.host, 'persist') }}
24+
SSHFS: ${{ startsWith(matrix.host, 'libvirt') || startsWith(matrix.host, 'persist') || startsWith(matrix.host, 'remote') }}
1525
strategy:
1626
fail-fast: false
1727
# We use a matrix in two parts: firstly all of the VMs are tested with the
@@ -73,34 +83,46 @@ jobs:
7383
- { target: nbsd8, config: pam, host: libvirt }
7484
- { target: nbsd9, config: pam, host: libvirt }
7585
- { target: nbsd10, config: pam, host: libvirt }
86+
# ARM64 VMs
87+
- { target: obsd-arm64, config: default, host: libvirt-arm64 }
7688
# VMs with persistent disks that have their own runner.
77-
- { target: win10, config: default, host: win10 }
78-
- { target: win10, config: cygwin-release, host: win10 }
79-
# Physical hosts, with either native runners or remote via ssh.
89+
- { target: win10, config: default, host: persist-win10 }
90+
- { target: win10, config: cygwin-release, host: persist-win10 }
91+
# Physical hosts with native runners.
8092
- { target: ARM, config: default, host: ARM }
8193
- { target: ARM64, config: default, host: ARM64 }
8294
- { target: ARM64, config: pam, host: ARM64 }
83-
- { target: debian-riscv64, config: default, host: debian-riscv64 }
84-
- { target: obsd-arm64, config: default, host: obsd-arm64 }
85-
- { target: openwrt-mips, config: default, host: openwrt-mips }
86-
- { target: openwrt-mipsel, config: default, host: openwrt-mipsel }
95+
# Physical hosts with remote runners.
96+
- { target: debian-riscv64, config: default, host: remote-debian-riscv64 }
97+
98+
- { target: openwrt-mips, config: default, host: remote-openwrt-mips }
99+
- { target: openwrt-mipsel, config: default, host: remote-openwrt-mipsel }
87100
steps:
101+
- name: unmount stale workspace
102+
if: env.SSHFS == 'true'
103+
run: fusermount -u ${GITHUB_WORKSPACE} || true
104+
working-directory: ${{ runner.temp }}
88105
- name: shutdown VM if running
106+
if: env.VM == 'true'
89107
run: vmshutdown
90-
working-directory: ${{ runner.temp }}
91108
- uses: actions/checkout@main
92109
- name: autoreconf
93110
run: autoreconf
94111
- name: startup VM
112+
if: env.VM == 'true'
95113
run: vmstartup
96114
working-directory: ${{ runner.temp }}
115+
- name: copy and mount workspace
116+
if: env.SSHFS == 'true'
117+
run: sshfs_mount
118+
working-directory: ${{ runner.temp }}
97119
- name: configure
98120
run: vmrun ./.github/configure.sh ${{ matrix.config }}
99-
- name: save config
100-
uses: actions/upload-artifact@main
101-
with:
102-
name: ${{ matrix.target }}-${{ matrix.config }}-config
103-
path: config.h
121+
# - name: save config
122+
# uses: actions/upload-artifact@main
123+
# with:
124+
# name: ${{ matrix.target }}-${{ matrix.config }}-config
125+
# path: config.h
104126
- name: make clean
105127
run: vmrun make clean
106128
- name: make
@@ -119,7 +141,10 @@ jobs:
119141
regress/*.log
120142
regress/log/*
121143
regress/valgrind-out/
144+
- name: unmount workspace
145+
if: always() && env.SSHFS == 'true'
146+
run: fusermount -u ${GITHUB_WORKSPACE} || true
147+
working-directory: ${{ runner.temp }}
122148
- name: shutdown VM
123-
if: always()
149+
if: always() && env.VM == 'true'
124150
run: vmshutdown
125-
working-directory: ${{ runner.temp }}

.github/workflows/upstream.yml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,50 @@
11
name: Upstream self-hosted
22

33
on:
4-
push:
5-
branches: [ master ]
6-
paths: [ '**.c', '**.h', '.github/**' ]
4+
workflow_dispatch: # disable for win32-openssh fork
5+
# push:
6+
# branches: [ master ]
7+
# paths: [ '**.c', '**.h', '**.sh', '.github/configs', '.github/workflows/upstream.yml' ]
78

89
jobs:
910
selfhosted:
11+
name: "upstream ${{ matrix.target }} ${{ matrix.config }}"
1012
if: github.repository == 'openssh/openssh-portable-selfhosted'
1113
runs-on: 'libvirt'
1214
env:
15+
DEBUG_ACTIONS: true
16+
EPHEMERAL: true
1317
HOST: 'libvirt'
1418
TARGET_HOST: ${{ matrix.target }}
1519
TARGET_CONFIG: ${{ matrix.config }}
20+
TARGET_DOMAIN: ${{ format('{0}-{1}-{2}', matrix.target, matrix.config, github.run_id) || matrix.target }}
1621
strategy:
1722
fail-fast: false
1823
matrix:
1924
target: [ obsdsnap, obsdsnap-i386 ]
2025
config: [ default, without-openssl, ubsan ]
2126
steps:
27+
- name: unmount stale workspace
28+
run: fusermount -u ${GITHUB_WORKSPACE} || true
29+
working-directory: ${{ runner.temp }}
2230
- name: shutdown VM if running
2331
run: vmshutdown
2432
working-directory: ${{ runner.temp }}
2533
- uses: actions/checkout@main
2634
- name: startup VM
2735
run: vmstartup
2836
working-directory: ${{ runner.temp }}
37+
- name: copy and mount workspace
38+
run: sshfs_mount
39+
working-directory: ${{ runner.temp }}
2940
- name: update source
3041
run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh"
3142
- name: make clean
3243
run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean && cd /usr/src/regress/usr.bin/ssh && make obj && make clean && sudo chmod -R g-w /usr/src /usr/obj"
3344
- name: make
3445
run: vmrun "cd /usr/src/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac"
3546
- name: make install
36-
run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install"
47+
run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install && sudo /etc/rc.d/sshd -f restart"
3748
- name: make tests`
3849
run: vmrun "cd /usr/src/regress/usr.bin/ssh && case ${{ matrix.config }} in without-openssl) make OPENSSL=no;; ubsan) make DEBUG='-fsanitize-minimal-runtime -fsanitize=undefined';; *) make; esac"
3950
env:
@@ -47,6 +58,10 @@ jobs:
4758
path: |
4859
/usr/obj/regress/usr.bin/ssh/obj/*.log
4960
/usr/obj/regress/usr.bin/ssh/obj/log/*
61+
- name: unmount workspace
62+
if: always()
63+
run: fusermount -u ${GITHUB_WORKSPACE} || true
64+
working-directory: ${{ runner.temp }}
5065
- name: shutdown VM
5166
if: always()
5267
run: vmshutdown

0 commit comments

Comments
 (0)