diff options
author | djm@openbsd.org <djm@openbsd.org> | 2021-08-09 09:21:01 +0200 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2021-08-10 04:47:45 +0200 |
commit | b4b3f3da6cdceb3fd168b5fab69d11fba73bd0ae (patch) | |
tree | 570bb75e2a00d23250f4fad554db692e3834f66c /scp.c | |
parent | upstream: rever r1.223 - I accidentally committed unrelated changes (diff) | |
download | openssh-b4b3f3da6cdceb3fd168b5fab69d11fba73bd0ae.tar.xz openssh-b4b3f3da6cdceb3fd168b5fab69d11fba73bd0ae.zip |
upstream: on fatal errors, make scp wait for ssh connection before
exiting avoids LogLevel=verbose (or greater) messages from ssh appearing
after scp has returned exited and control has returned to the shell; ok
markus@
(this was originally committed as r1.223 along with unrelated stuff that
I rolled back in r1.224)
OpenBSD-Commit-ID: 1261fd667ad918484889ed3d7aec074f3956a74b
Diffstat (limited to '')
-rw-r--r-- | scp.c | 20 |
1 files changed, 19 insertions, 1 deletions
@@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.224 2021/08/09 07:19:12 djm Exp $ */ +/* $OpenBSD: scp.c,v 1.225 2021/08/09 07:21:01 djm Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -2141,3 +2141,21 @@ lostconn(int signo) else exit(1); } + +void +cleanup_exit(int i) +{ + if (remin > 0) + close(remin); + if (remout > 0) + close(remout); + if (remin2 > 0) + close(remin2); + if (remout2 > 0) + close(remout2); + if (do_cmd_pid > 0) + waitpid(do_cmd_pid, NULL, 0); + if (do_cmd_pid2 > 0) + waitpid(do_cmd_pid2, NULL, 0); + exit(i); +} |