daemon: ensure that base-path is an existing directory
Any request to the daemon would fail if base-path (if specified) is not a directory. We now check for this condition early. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
22665bbaab
commit
2063207156
8
daemon.c
8
daemon.c
@ -1184,6 +1184,14 @@ int main(int argc, char **argv)
|
|||||||
if (strict_paths && (!ok_paths || !*ok_paths))
|
if (strict_paths && (!ok_paths || !*ok_paths))
|
||||||
die("option --strict-paths requires a whitelist");
|
die("option --strict-paths requires a whitelist");
|
||||||
|
|
||||||
|
if (base_path) {
|
||||||
|
struct stat st;
|
||||||
|
|
||||||
|
if (stat(base_path, &st) || !S_ISDIR(st.st_mode))
|
||||||
|
die("base-path '%s' does not exist or "
|
||||||
|
"is not a directory", base_path);
|
||||||
|
}
|
||||||
|
|
||||||
if (inetd_mode) {
|
if (inetd_mode) {
|
||||||
struct sockaddr_storage ss;
|
struct sockaddr_storage ss;
|
||||||
struct sockaddr *peer = (struct sockaddr *)&ss;
|
struct sockaddr *peer = (struct sockaddr *)&ss;
|
||||||
|
Reference in New Issue
Block a user