]> git.ipfire.org Git - thirdparty/git.git/commitdiff
credential-cache--daemon: change to the socket dir on startup
authorJon Griffiths <jon_p_griffiths@yahoo.com>
Tue, 23 Feb 2016 07:16:04 +0000 (02:16 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 23 Feb 2016 22:48:03 +0000 (14:48 -0800)
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 <peff@peff.net>
Signed-off-by: Jon Griffiths <jon_p_griffiths@yahoo.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
credential-cache--daemon.c

index fe3779472cedc159dd8d6960f498c5f742782933..6b00ee0ee61536a9f3c63980d251d4f4e8d797ca 100644 (file)
@@ -236,6 +236,15 @@ static void init_socket_directory(const char *path)
                if (mkdir(dir, 0700) < 0)
                        die_errno("unable to mkdir '%s'", dir);
        }
+
+       if (chdir(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.
+                */
+               ;
+
        free(path_copy);
 }