mirror of
git://anongit.mindrot.org/openssh.git
synced 2024-12-17 23:54:35 +00:00
upstream: fix home-directory extension implementation, it always
returned the current user's home directory contrary to the spec. Patch from Jakub Jelen via GHPR477 OpenBSD-Commit-ID: 5afd775eab7f9cbe222d7fbae4c793de6c3b3d28
This commit is contained in:
parent
14e2b16bc6
commit
385ecb31e1
@ -1,4 +1,4 @@
|
|||||||
/* $OpenBSD: sftp-server.c,v 1.147 2023/04/12 08:53:54 jsg Exp $ */
|
/* $OpenBSD: sftp-server.c,v 1.148 2024/04/30 06:23:51 djm Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
|
* Copyright (c) 2000-2004 Markus Friedl. All rights reserved.
|
||||||
*
|
*
|
||||||
@ -1706,14 +1706,16 @@ process_extended_home_directory(u_int32_t id)
|
|||||||
fatal_fr(r, "parse");
|
fatal_fr(r, "parse");
|
||||||
|
|
||||||
debug3("request %u: home-directory \"%s\"", id, username);
|
debug3("request %u: home-directory \"%s\"", id, username);
|
||||||
if ((user_pw = getpwnam(username)) == NULL) {
|
if (username[0] == '\0') {
|
||||||
|
user_pw = pw;
|
||||||
|
} else if ((user_pw = getpwnam(username)) == NULL) {
|
||||||
send_status(id, SSH2_FX_FAILURE);
|
send_status(id, SSH2_FX_FAILURE);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
verbose("home-directory \"%s\"", pw->pw_dir);
|
verbose("home-directory \"%s\"", user_pw->pw_dir);
|
||||||
attrib_clear(&s.attrib);
|
attrib_clear(&s.attrib);
|
||||||
s.name = s.long_name = pw->pw_dir;
|
s.name = s.long_name = user_pw->pw_dir;
|
||||||
send_names(id, 1, &s);
|
send_names(id, 1, &s);
|
||||||
out:
|
out:
|
||||||
free(username);
|
free(username);
|
||||||
|
Loading…
Reference in New Issue
Block a user