diff options
| author | Junio C Hamano <gitster@pobox.com> | 2025-11-20 11:45:35 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-11-24 17:00:47 -0800 |
| commit | 0bd16856ffb3968de73699ad0555d1fae6c45406 (patch) | |
| tree | 9d2c78d62c1e4588bd54ae78a59205747af6500c /gpg-interface.c | |
| parent | ce1a5a22a5beefac8a52da518855b5aecc562874 (diff) | |
| download | git-0bd16856ffb3968de73699ad0555d1fae6c45406.tar.gz | |
config: really treat missing optional path as not configured
These callers expect that git_config_pathname() that returns 0 is a
signal that the variable they passed has a string they need to act
on. But with the introduction of ":(optional)path" earlier, that is
no longer the case. If the path specified by the configuration
variable is missing, their variable will get a NULL in it, and they
need to act on it (often, just refraining from copying it elsewhere).
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'gpg-interface.c')
| -rw-r--r-- | gpg-interface.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/gpg-interface.c b/gpg-interface.c index 06e7fb5060..8b91a11a43 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -794,8 +794,16 @@ static int git_gpg_config(const char *var, const char *value, fmtname = "ssh"; if (fmtname) { + char *program; + int status; + fmt = get_format_by_name(fmtname); - return git_config_pathname((char **) &fmt->program, var, value); + status = git_config_pathname(&program, var, value); + if (status) + return status; + if (program) + fmt->program = program; + return status; } return 0; |
