From 4c3062010472c5bfb4eca2869edd79a4178e71c8 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Sat, 28 May 2016 09:23:06 +0200 Subject: [PATCH] credential-store: avoid assertion As of 1a9d15d (tempfile: a new module for handling temporary files, 2015-08-10), the temporary files which are used by the lock file machinery adjust the permissions, and to do that, the config is read, which in turn requires the config to be read. This means that the runtime prefix needs to be resolved properly, but we did not set that correctly in credential-store. The symptom of this bug: when running printf '%s\n%s\n%s\n%s\n' \ 'protocol=https' 'host=gitblub.com' \ 'username=hello' 'password=world' | git credential-store store an assertion is thrown: Assertion failed! Program: ...\libexec\git-core\git-credential-store.exe File: exec_cmd.c, Line 23 Expression: argv0_path This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This fixes https://github.com/git-for-windows/git/issues/766 Signed-off-by: Johannes Schindelin --- credential-store.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/credential-store.c b/credential-store.c index 57141679ab..83637aa98b 100644 --- a/credential-store.c +++ b/credential-store.c @@ -3,6 +3,7 @@ #include "credential.h" #include "string-list.h" #include "parse-options.h" +#include "exec_cmd.h" static struct lock_file credential_lock; @@ -160,6 +161,7 @@ int main(int argc, char **argv) umask(077); + git_extract_argv0_path(argv[0]); argc = parse_options(argc, (const char **)argv, NULL, options, usage, 0); if (argc != 1) usage_with_options(usage, options);