summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstevesk <stevesk@openbsd.org>2001-02-04 22:21:19 +0000
committerstevesk <stevesk@openbsd.org>2001-02-04 22:21:19 +0000
commit2fa84ba37c60d7885a0d24e496c45e4e42960522 (patch)
treea4dcc99695275d9fa2744b504236e9788ad67f60
parentdebugging sftp: precedence and missing break. chmod, chown, chgrp (diff)
downloadwireguard-openbsd-2fa84ba37c60d7885a0d24e496c45e4e42960522.tar.xz
wireguard-openbsd-2fa84ba37c60d7885a0d24e496c45e4e42960522.zip
SSH2_FILEXFER_ATTR_UIDGID support; ok markus@
-rw-r--r--usr.bin/ssh/sftp-server.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.bin/ssh/sftp-server.c b/usr.bin/ssh/sftp-server.c
index 3428b1c5bec..29d96150c2b 100644
--- a/usr.bin/ssh/sftp-server.c
+++ b/usr.bin/ssh/sftp-server.c
@@ -22,7 +22,7 @@
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include "includes.h"
-RCSID("$OpenBSD: sftp-server.c,v 1.17 2001/02/04 15:32:25 stevesk Exp $");
+RCSID("$OpenBSD: sftp-server.c,v 1.18 2001/02/04 22:21:19 stevesk Exp $");
#include "buffer.h"
#include "bufaux.h"
@@ -557,6 +557,11 @@ process_setstat(void)
if (ret == -1)
status = errno_to_portable(errno);
}
+ if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) {
+ ret = chown(name, a->uid, a->gid);
+ if (ret == -1)
+ status = errno_to_portable(errno);
+ }
send_status(id, status);
xfree(name);
}
@@ -587,6 +592,11 @@ process_fsetstat(void)
if (ret == -1)
status = errno_to_portable(errno);
}
+ if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) {
+ ret = fchown(fd, a->uid, a->gid);
+ if (ret == -1)
+ status = errno_to_portable(errno);
+ }
}
send_status(id, status);
}