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 <johannes.schindelin@gmx.de>
This commit is contained in:
Johannes Schindelin
2016-05-28 09:23:06 +02:00
parent ebcf257c9f
commit 6badfb3bfc

View File

@@ -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);