[PATCH 2/3] credential-cache--daemon: disallow relative socket path
From: Jeff King <hidden>
Date: 2016-06-15 23:08:22
Subsystem:
documentation, the rest · Maintainers:
Jonathan Corbet, Linus Torvalds
From: Jon Griffiths <redacted> Relative socket paths are dangerous since the user cannot generally control when the daemon starts (initially, after a timeout, kill or crash). Since the daemon creates but does not delete the socket directory, this could lead to spurious directory creation relative to the users cwd. Suggested-by: Jeff King <redacted> Signed-off-by: Jon Griffiths <redacted> Signed-off-by: Jeff King <redacted> --- Documentation/git-credential-cache.txt | 2 +- credential-cache--daemon.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Documentation/git-credential-cache.txt b/Documentation/git-credential-cache.txt
index 89b7306..96208f8 100644
--- a/Documentation/git-credential-cache.txt
+++ b/Documentation/git-credential-cache.txt@@ -36,7 +36,7 @@ OPTIONS cache daemon if one is not started). Defaults to `~/.git-credential-cache/socket`. If your home directory is on a network-mounted filesystem, you may need to change this to a - local filesystem. + local filesystem. You must specify an absolute path. CONTROLLING THE DAEMON ----------------------
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c
index 3403f48..7cfcd37 100644
--- a/credential-cache--daemon.c
+++ b/credential-cache--daemon.c@@ -262,6 +262,9 @@ int main(int argc, const char **argv) if (!socket_path) usage_with_options(usage, options); + if (!is_absolute_path(socket_path)) + die("socket directory must be an absolute path"); + init_socket_directory(socket_path); register_tempfile(&socket_file, socket_path);
--
2.7.2.645.g4e1306c