From: Jon Griffiths <redacted>
Changing to the socket path stops the daemon holding open
the directory the user was in when it was started,
preventing umount from working. We're already holding open a
socket in that directory, so there's no downside.
Thanks-to: Jeff King [off-list ref]
Signed-off-by: Jon Griffiths <redacted>
Signed-off-by: Jeff King <redacted>
---
credential-cache--daemon.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/credential-cache--daemon.c b/credential-cache--daemon.c
index 7cfcd37..776f315 100644
--- a/credential-cache--daemon.c
+++ b/credential-cache--daemon.c
@@ -236,6 +236,14 @@ static void init_socket_directory(const char *path)
if (mkdir(dir, 0700) < 0)
die_errno("unable to mkdir '%s'", dir);
}
+
+ /*
+ * We don't actually care what our cwd is; we chdir here just to
+ * be a friendly daemon and avoid tying up our original cwd.
+ * If this fails, it's OK to just continue without that benefit.
+ */
+ chdir(dir);
+
free(path_copy);
}
--
2.7.2.645.g4e1306c