diff options
Diffstat (limited to 'sftp-server.c')
-rw-r--r-- | sftp-server.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sftp-server.c b/sftp-server.c index 51026de4e..ade2663e7 100644 --- a/sftp-server.c +++ b/sftp-server.c | |||
@@ -22,7 +22,7 @@ | |||
22 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 | */ | 23 | */ |
24 | #include "includes.h" | 24 | #include "includes.h" |
25 | RCSID("$OpenBSD: sftp-server.c,v 1.15 2001/02/04 11:11:54 djm Exp $"); | 25 | RCSID("$OpenBSD: sftp-server.c,v 1.18 2001/02/04 22:21:19 stevesk Exp $"); |
26 | 26 | ||
27 | #include "buffer.h" | 27 | #include "buffer.h" |
28 | #include "bufaux.h" | 28 | #include "bufaux.h" |
@@ -561,6 +561,11 @@ process_setstat(void) | |||
561 | if (ret == -1) | 561 | if (ret == -1) |
562 | status = errno_to_portable(errno); | 562 | status = errno_to_portable(errno); |
563 | } | 563 | } |
564 | if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) { | ||
565 | ret = chown(name, a->uid, a->gid); | ||
566 | if (ret == -1) | ||
567 | status = errno_to_portable(errno); | ||
568 | } | ||
564 | send_status(id, status); | 569 | send_status(id, status); |
565 | xfree(name); | 570 | xfree(name); |
566 | } | 571 | } |
@@ -601,6 +606,11 @@ process_fsetstat(void) | |||
601 | if (ret == -1) | 606 | if (ret == -1) |
602 | status = errno_to_portable(errno); | 607 | status = errno_to_portable(errno); |
603 | } | 608 | } |
609 | if (a->flags & SSH2_FILEXFER_ATTR_UIDGID) { | ||
610 | ret = fchown(fd, a->uid, a->gid); | ||
611 | if (ret == -1) | ||
612 | status = errno_to_portable(errno); | ||
613 | } | ||
604 | } | 614 | } |
605 | send_status(id, status); | 615 | send_status(id, status); |
606 | } | 616 | } |