diff options
Diffstat (limited to 'sftp-server.c')
-rw-r--r-- | sftp-server.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/sftp-server.c b/sftp-server.c index df0fb5068..ab1b063f2 100644 --- a/sftp-server.c +++ b/sftp-server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-server.c,v 1.111 2017/04/04 00:24:56 djm Exp $ */ | 1 | /* $OpenBSD: sftp-server.c,v 1.112 2018/06/01 03:33:53 djm Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. | 3 | * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. |
4 | * | 4 | * |
@@ -1503,7 +1503,7 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) | |||
1503 | int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0; | 1503 | int i, r, in, out, max, ch, skipargs = 0, log_stderr = 0; |
1504 | ssize_t len, olen, set_size; | 1504 | ssize_t len, olen, set_size; |
1505 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; | 1505 | SyslogFacility log_facility = SYSLOG_FACILITY_AUTH; |
1506 | char *cp, *homedir = NULL, buf[4*4096]; | 1506 | char *cp, *homedir = NULL, uidstr[32], buf[4*4096]; |
1507 | long mask; | 1507 | long mask; |
1508 | 1508 | ||
1509 | extern char *optarg; | 1509 | extern char *optarg; |
@@ -1554,8 +1554,10 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) | |||
1554 | break; | 1554 | break; |
1555 | case 'd': | 1555 | case 'd': |
1556 | cp = tilde_expand_filename(optarg, user_pw->pw_uid); | 1556 | cp = tilde_expand_filename(optarg, user_pw->pw_uid); |
1557 | snprintf(uidstr, sizeof(uidstr), "%llu", | ||
1558 | (unsigned long long)pw->pw_uid); | ||
1557 | homedir = percent_expand(cp, "d", user_pw->pw_dir, | 1559 | homedir = percent_expand(cp, "d", user_pw->pw_dir, |
1558 | "u", user_pw->pw_name, (char *)NULL); | 1560 | "u", user_pw->pw_name, "U", uidstr, (char *)NULL); |
1559 | free(cp); | 1561 | free(cp); |
1560 | break; | 1562 | break; |
1561 | case 'p': | 1563 | case 'p': |