summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2008-07-04 14:10:19 +1000
committerDarren Tucker <dtucker@zip.com.au>2008-07-04 14:10:19 +1000
commitf7fa706e70cc3d005acca995d022d65227185dcd (patch)
tree141cf4000a1c35588bef2ff9775a95db831af44b
parent2784f1fcc3b6c41cdeb8e7d850044c5ee61cbbcd (diff)
- (dtucker) [sftp-server.c] Bug #1447: fall back to racy rename if link
returns EXDEV. Patch from Mike Garrison, ok djm@
-rw-r--r--ChangeLog4
-rw-r--r--sftp-server.c3
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b86b5e498..46785b799 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,8 @@
18 - dtucker@cvs.openbsd.org 2008/07/04 03:47:02 18 - dtucker@cvs.openbsd.org 2008/07/04 03:47:02
19 [monitor.c] 19 [monitor.c]
20 Make debug a little clearer. ok djm@ 20 Make debug a little clearer. ok djm@
21 - (dtucker) [sftp-server.c] Bug #1447: fall back to racy rename if link
22 returns EXDEV. Patch from Mike Garrison, ok djm@
21 23
2220080702 2420080702
23 - (dtucker) OpenBSD CVS Sync 25 - (dtucker) OpenBSD CVS Sync
@@ -4553,4 +4555,4 @@
4553 OpenServer 6 and add osr5bigcrypt support so when someone migrates 4555 OpenServer 6 and add osr5bigcrypt support so when someone migrates
4554 passwords between UnixWare and OpenServer they will still work. OK dtucker@ 4556 passwords between UnixWare and OpenServer they will still work. OK dtucker@
4555 4557
4556$Id: ChangeLog,v 1.5053 2008/07/04 03:51:45 dtucker Exp $ 4558$Id: ChangeLog,v 1.5054 2008/07/04 04:10:19 dtucker Exp $
diff --git a/sftp-server.c b/sftp-server.c
index a4c4f168f..24c4ff717 100644
--- a/sftp-server.c
+++ b/sftp-server.c
@@ -1042,6 +1042,9 @@ process_rename(void)
1042 /* Race-free rename of regular files */ 1042 /* Race-free rename of regular files */
1043 if (link(oldpath, newpath) == -1) { 1043 if (link(oldpath, newpath) == -1) {
1044 if (errno == EOPNOTSUPP 1044 if (errno == EOPNOTSUPP
1045#ifdef EXDEV
1046 || errno == EXDEV
1047#endif
1045#ifdef LINK_OPNOTSUPP_ERRNO 1048#ifdef LINK_OPNOTSUPP_ERRNO
1046 || errno == LINK_OPNOTSUPP_ERRNO 1049 || errno == LINK_OPNOTSUPP_ERRNO
1047#endif 1050#endif