diff options
author | Damien Miller <djm@mindrot.org> | 2020-05-14 04:22:09 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2020-05-14 04:24:24 +0200 |
commit | 3ab6fccc3935e9b778ff52f9c8d40f215d58e01d (patch) | |
tree | 826ffb5725865c2d948d77b5ac948f9951ed3673 /regress | |
parent | Actually skip pty tests when needed. (diff) | |
download | openssh-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.sh | 5 |
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 |