bugzilla-daemon at mindrot.org
2002-Dec-05 16:15 UTC
[Bug 452] sftp does not abort when commands given via -b fail
http://bugzilla.mindrot.org/show_bug.cgi?id=452 ------- Additional Comments From spin at avalon.net 2002-12-06 03:15 ------- Forgot to mention that this is 3.1p1-6 RedHat RPM. ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
bugzilla-daemon at mindrot.org
2002-Dec-17 17:39 UTC
[Bug 452] sftp does not abort when commands given via -b fail
http://bugzilla.mindrot.org/show_bug.cgi?id=452 ------- Additional Comments From cjwatson at debian.org 2002-12-18 04:39 ------- This is also Debian bug #173456 (http://bugs.debian.org/173456). ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
bugzilla-daemon at mindrot.org
2002-Dec-30 00:18 UTC
[Bug 452] sftp does not abort when commands given via -b fail
http://bugzilla.mindrot.org/show_bug.cgi?id=452 ------- Additional Comments From cjwatson at debian.org 2002-12-30 11:18 ------- Robert Bihlmeyer <robbe at orcus.priv.at> added these comments and suggested the following patch: The following "-b" script should work if everything ran as documented: get the-remote-file rm the-remote-file In the status quo it can incur dataloss (and did for me, aargh!) if the get fails for some reason (e.g. disk full). The appended patch fixes the some cases, and should point people in the right direction. There are still more places where process_get will return -1 (which will not lead to abort). Either all these get changed to 1, or -- as it seems the intention is not to abort on every error -- the manpage documents exactly in which cases an abort will happen. The current situation is just bad. I'd be most satisfied with a "abort on every miniscule error" switch, akin to sh's -e. diff -u openssh-3.5p1/sftp-int.c~ openssh-3.5p1/sftp-int.c --- openssh-3.5p1/sftp-int.c~ 2002-12-30 01:13:29.000000000 +0100 +++ openssh-3.5p1/sftp-int.c 2002-12-30 01:13:29.000000000 +0100 @@ -426,7 +426,7 @@ goto out; } printf("Fetching %s to %s\n", g.gl_pathv[0], abs_dst); - err = do_download(conn, g.gl_pathv[0], abs_dst, pflag); + err = do_download(conn, g.gl_pathv[0], abs_dst, pflag) ? 1 : 0; goto out; } @@ -451,7 +451,7 @@ printf("Fetching %s to %s\n", g.gl_pathv[i], abs_dst); if (do_download(conn, g.gl_pathv[i], abs_dst, pflag) == -1) - err = -1; + err = 1; xfree(abs_dst); abs_dst = NULL; } ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.