From: Jonathan Nieder <jrnieder@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [PATCHv3 10/13] credentials: add "cache" helper
Date: Mon, 9 Jan 2012 19:50:38 -0600 [thread overview]
Message-ID: <20120110015038.GA17754@burratino> (raw)
In-Reply-To: <20111210103407.GJ16529@sigill.intra.peff.net>
Hi,
Jeff King wrote:
> This patch introduces a credential helper that will cache
> passwords in memory for a short period of time.
>
> Signed-off-by: Jeff King <peff@peff.net>
[...]
> t/t0301-credential-cache.sh | 18 ++
This test is failing for me:
expecting success:
check fill $HELPER <<-\EOF
protocol=https
host=example.com
--
username=askpass-username
password=askpass-password
--
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
EOF
--- expect-stderr 2012-01-10 00:07:02.398365248 +0000
+++ stderr 2012-01-10 00:07:02.418364996 +0000
@@ -1,2 +1,3 @@
+fatal: socket path is too long to fit in sockaddr
askpass: Username for 'https://example.com':
askpass: Password for 'https://askpass-username@example.com':
not ok - 1 helper (cache) has no existing data
I didn't notice until recently because typically the cwd is short.
The sun_path[] array on this machine is 108 bytes; POSIX informs me
that some platforms make it as small as 96 bytes and there's no
guaranteed lower limit. The machines[*] triggering it were running
tests in a chroot, hence the long path.
So you should be able to reproduce this with
longpath=foo/bar; # > 6 chars
longpath=$longpath/$longpath/$longpath/$longpath; # > 24
longpath=$longpath/$longpath/$longpath/$longpath; # > 96
longpath=/tmp/$longpath/$longpath
mkdir -p $longpath
sh t0301-credential-cache.sh --root=$longpath
Ideas?
---
[*] https://buildd.debian.org/status/logs.php?pkg=git&ver=1%3A1.7.9~rc0-1
credential-cache.c | 18 +++++++++++++-----
1 files changed, 13 insertions(+), 5 deletions(-)
diff --git a/credential-cache.c b/credential-cache.c
index dc98372e..fd9304e6 100644
--- a/credential-cache.c
+++ b/credential-cache.c
@@ -82,7 +82,7 @@ static void do_cache(const char *socket, const char *action, int timeout,
int main(int argc, const char **argv)
{
- char *socket_path = NULL;
+ const char *socket_path = NULL;
int timeout = 900;
const char *op;
const char * const usage[] = {
@@ -102,10 +102,18 @@ int main(int argc, const char **argv)
usage_with_options(usage, options);
op = argv[0];
- if (!socket_path)
- socket_path = expand_user_path("~/.git-credential-cache/socket");
- if (!socket_path)
- die("unable to find a suitable socket path; use --socket");
+ if (!socket_path) {
+ char *home = expand_user_path("~");
+ if (!home)
+ die("unable to find a suitable socket path; use --socket");
+
+ if (!chdir(home))
+ socket_path = ".git-credential-cache/socket";
+ else if (errno == ENOENT && !strcmp(op, "exit"))
+ return 0;
+ else
+ die("cannot enter home directory");
+ }
if (!strcmp(op, "exit"))
do_cache(socket_path, op, timeout, 0);
--
1.7.8.2
next prev parent reply other threads:[~2012-01-10 1:45 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-10 10:28 [PATCHv3 0/13] credential helpers Jeff King
2011-12-10 10:30 ` [PATCHv3 01/13] test-lib: add test_config_global variant Jeff King
2011-12-10 10:30 ` [PATCHv3 02/13] t5550: fix typo Jeff King
2011-12-10 10:31 ` [PATCHv3 03/13] introduce credentials API Jeff King
2011-12-10 11:43 ` Jakub Narebski
2011-12-10 19:48 ` Jeff King
2011-12-10 10:31 ` [PATCHv3 04/13] credential: add function for parsing url components Jeff King
2011-12-10 10:31 ` [PATCHv3 05/13] http: use credential API to get passwords Jeff King
2011-12-10 10:31 ` [PATCHv3 06/13] credential: apply helper config Jeff King
2011-12-10 10:31 ` [PATCHv3 07/13] credential: add credential.*.username Jeff King
2011-12-10 10:31 ` [PATCHv3 08/13] credential: make relevance of http path configurable Jeff King
2011-12-10 11:50 ` Jakub Narebski
2011-12-10 19:50 ` Jeff King
2011-12-10 10:31 ` [PATCHv3 09/13] docs: end-user documentation for the credential subsystem Jeff King
2011-12-10 10:34 ` [PATCHv3 10/13] credentials: add "cache" helper Jeff King
2012-01-10 1:50 ` Jonathan Nieder [this message]
2012-01-10 4:44 ` Jeff King
2012-01-10 4:57 ` Jeff King
2012-01-10 16:59 ` Junio C Hamano
2012-01-17 6:02 ` Jeff King
2012-01-17 6:51 ` Junio C Hamano
2012-01-10 17:44 ` Jonathan Nieder
2012-01-10 17:53 ` Jeff King
2012-01-11 23:50 ` Jonathan Nieder
2012-01-12 3:07 ` Jeff King
2011-12-10 10:34 ` [PATCHv3 11/13] strbuf: add strbuf_add*_urlencode Jeff King
2011-12-10 11:57 ` Jakub Narebski
2011-12-10 20:09 ` Jeff King
2011-12-10 10:34 ` [PATCHv3 12/13] credentials: add "store" helper Jeff King
2011-12-10 10:35 ` [PATCHv3 13/13] t: add test harness for external credential helpers Jeff King
2011-12-10 10:39 ` [PATCHv2 0/9] echo characters in username prompt Jeff King
2011-12-10 10:40 ` [PATCHv2 1/9] imap-send: avoid buffer overflow Jeff King
2011-12-10 10:40 ` [PATCHv2 2/9] imap-send: don't check return value of git_getpass Jeff King
2011-12-10 10:40 ` [PATCHv2 3/9] move git_getpass to its own source file Jeff King
2011-12-10 10:40 ` [PATCHv2 4/9] refactor git_getpass into generic prompt function Jeff King
2011-12-10 10:41 ` [PATCHv2 5/9] add generic terminal " Jeff King
2011-12-15 12:48 ` Pete Wyckoff
2011-12-15 13:39 ` Jeff King
2011-12-15 21:59 ` Pete Wyckoff
2011-12-10 10:41 ` [PATCHv2 6/9] prompt: use git_terminal_prompt Jeff King
2011-12-10 10:41 ` [PATCHv2 7/9] credential: use git_prompt instead of git_getpass Jeff King
2011-12-10 10:41 ` [PATCHv2 8/9] Makefile: linux has /dev/tty Jeff King
2011-12-10 10:41 ` [PATCHv2 9/9] Makefile: OS X " Jeff King
2011-12-12 21:10 ` [PATCH 1/2] Makefile: Windows lacks /dev/tty Johannes Sixt
2011-12-12 21:12 ` [PATCH 2/2] Makefile: optionally exclude code that needs Unix sockets Johannes Sixt
2011-12-12 21:39 ` Jeff King
2011-12-12 23:31 ` Junio C Hamano
2011-12-13 0:58 ` Jeff King
2011-12-13 0:45 ` Junio C Hamano
2011-12-13 20:00 ` Johannes Sixt
2011-12-14 0:14 ` Junio C Hamano
2011-12-12 21:18 ` [PATCH 1/2] Makefile: Windows lacks /dev/tty Jeff King
2011-12-12 21:52 ` Johannes Sixt
2011-12-10 10:53 ` [PATCH 1/1] contrib: add credential helper for OS X Keychain Jeff King
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120110015038.GA17754@burratino \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.