config: make a copy of $GIT_CONFIG string

cmd_config() points our source filename pointer at the return value of getenv(), but that value may be invalidated by further calls to environment functions. Let's copy it to make sure it remains valid. We don't need to bother freeing it, as it remains part of the whole-process global state until we exit. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jan 11, 2019 at 17:15 UTC 423ff9bef003b41f81949e7a88d7278b48334ed4
1 file changed +1 -1
builtin/config.c
+1 -1
@@ -595,7 +595,7 @@ int cmd_config(int argc, const char **argv, const char *prefix)
595 int nongit = !startup_info->have_repository;
596 char *value;
597
598 - given_config_source.file = getenv(CONFIG_ENVIRONMENT);
598 + given_config_source.file = xstrdup_or_null(getenv(CONFIG_ENVIRONMENT));
599
600 argc = parse_options(argc, argv, prefix, builtin_config_options,
601 builtin_config_usage,