summaryrefslogtreecommitdiffstats
path: root/regress
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2020-05-14 04:22:09 +0200
committerDamien Miller <djm@mindrot.org>2020-05-14 04:24:24 +0200
commit3ab6fccc3935e9b778ff52f9c8d40f215d58e01d (patch)
tree826ffb5725865c2d948d77b5ac948f9951ed3673 /regress
parentActually skip pty tests when needed. (diff)
downloadopenssh-3ab6fccc3935e9b778ff52f9c8d40f215d58e01d.tar.xz
openssh-3ab6fccc3935e9b778ff52f9c8d40f215d58e01d.zip
prefer ln to cp for temporary copy of sshd
I saw failures on the reexec fallback test on Darwin 19.4 where fork()ed children of a process that had it's executable removed would instantly fail. Using ln to preserve the inode avoids this.
Diffstat (limited to 'regress')
-rw-r--r--regress/reexec.sh5
1 files changed, 4 insertions, 1 deletions
diff --git a/regress/reexec.sh b/regress/reexec.sh
index 2192456cd..8966ba524 100644
--- a/regress/reexec.sh
+++ b/regress/reexec.sh
@@ -9,7 +9,10 @@ SSHD_COPY=$OBJ/sshd
# Start a sshd and then delete it
start_sshd_copy ()
{
- cp $SSHD_ORIG $SSHD_COPY
+ # NB. prefer ln to cp here. On some OSX 19.4 configurations,
+ # djm has seen failure after fork() when the executable image
+ # has been removed from the filesystem.
+ ln $SSHD_ORIG $SSHD_COPY || cp $SSHD_ORIG $SSHD_COPY
SSHD=$SSHD_COPY
start_sshd
SSHD=$SSHD_ORIG