summaryrefslogtreecommitdiff
path: root/sftp-server.c
diff options
context:
space:
mode:
authorDag-Erling Smørgrav <des@FreeBSD.org>2018-08-28 10:47:58 +0000
committerDag-Erling Smørgrav <des@FreeBSD.org>2018-08-28 10:47:58 +0000
commitd46065df2d60bfbd08939733bd79b2a440d6fbc8 (patch)
tree720921fc9471de3c67f5b8dc1404c8f6c6a02cb1 /sftp-server.c
parent3d0e42005d3bf786341ab96cfa1788bc601faa12 (diff)
Vendor import of OpenSSH 7.8p1.vendor/openssh/7.8p1
Notes
svn path=/vendor-crypto/openssh/dist/; revision=338344 svn path=/vendor-crypto/openssh/7.8p1/; revision=338345; tag=vendor/openssh/7.8p1
Diffstat (limited to 'sftp-server.c')
-rw-r--r--sftp-server.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sftp-server.c b/sftp-server.c
index df0fb50680fe..ab1b063f2136 100644
--- a/sftp-server.c
+++ b/sftp-server.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-server.c,v 1.111 2017/04/04 00:24:56 djm Exp $ */
+/* $OpenBSD: sftp-server.c,v 1.112 2018/06/01 03:33:53 djm Exp $ */
/*
* Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
*
@@ -1503,7 +1503,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw)
int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0;
ssize_t len, olen, set_size;
SyslogFacility log_facility = SYSLOG_FACILITY_AUTH;
- char *cp, *homedir = NULL, buf[4*4096];
+ char *cp, *homedir = NULL, uidstr[32], buf[4*4096];
long mask;
extern char *optarg;
@@ -1554,8 +1554,10 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw)
break;
case 'd':
cp = tilde_expand_filename(optarg, user_pw->pw_uid);
+ snprintf(uidstr, sizeof(uidstr), "%llu",
+ (unsigned long long)pw->pw_uid);
homedir = percent_expand(cp, "d", user_pw->pw_dir,
- "u", user_pw->pw_name, (char *)NULL);
+ "u", user_pw->pw_name, "U", uidstr, (char *)NULL);
free(cp);
break;
case 'p':