diff options
author | Johannes Sixt <j.sixt@viscovery.net> | 2008-02-26 13:00:55 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-02-27 14:47:36 -0800 |
commit | 20632071560ad4915f4e620d3c053e5ee3af80f3 (patch) | |
tree | 92dff6108921a232c7b9d8618e4f2f968fc8af1b /daemon.c | |
parent | 22665bbaab799b1f20a23039a5c759cd35d36939 (diff) | |
download | git-20632071560ad4915f4e620d3c053e5ee3af80f3.tar.gz git-20632071560ad4915f4e620d3c053e5ee3af80f3.tar.xz |
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>
Diffstat (limited to 'daemon.c')
-rw-r--r-- | daemon.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -1184,6 +1184,14 @@ int main(int argc, char **argv) if (strict_paths && (!ok_paths || !*ok_paths)) 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) { struct sockaddr_storage ss; struct sockaddr *peer = (struct sockaddr *)&ss; |