diff options
Diffstat (limited to 'sftp-server.c')
-rw-r--r-- | sftp-server.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/sftp-server.c b/sftp-server.c index 373bd5eda..44ccefff8 100644 --- a/sftp-server.c +++ b/sftp-server.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: sftp-server.c,v 1.76 2008/02/04 21:53:00 markus Exp $ */ | 1 | /* $OpenBSD: sftp-server.c,v 1.77 2008/02/08 23:24:07 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 | * |
@@ -1219,7 +1219,7 @@ sftp_server_usage(void) | |||
1219 | } | 1219 | } |
1220 | 1220 | ||
1221 | int | 1221 | int |
1222 | sftp_server_main(int argc, char **argv) | 1222 | sftp_server_main(int argc, char **argv, struct passwd *user_pw) |
1223 | { | 1223 | { |
1224 | fd_set *rset, *wset; | 1224 | fd_set *rset, *wset; |
1225 | int in, out, max, ch, skipargs = 0, log_stderr = 0; | 1225 | int in, out, max, ch, skipargs = 0, log_stderr = 0; |
@@ -1277,11 +1277,7 @@ sftp_server_main(int argc, char **argv) | |||
1277 | } else | 1277 | } else |
1278 | client_addr = xstrdup("UNKNOWN"); | 1278 | client_addr = xstrdup("UNKNOWN"); |
1279 | 1279 | ||
1280 | if ((pw = getpwuid(getuid())) == NULL) { | 1280 | pw = pwcopy(user_pw); |
1281 | error("No user found for uid %lu", (u_long)getuid()); | ||
1282 | sftp_server_cleanup_exit(255); | ||
1283 | } | ||
1284 | pw = pwcopy(pw); | ||
1285 | 1281 | ||
1286 | logit("session opened for local user %s from [%s]", | 1282 | logit("session opened for local user %s from [%s]", |
1287 | pw->pw_name, client_addr); | 1283 | pw->pw_name, client_addr); |