[PATCH 1/8] gpg-interface: handle bool user.signingkey
- From
Ben Toews <mastahyeti@gmail.com>
- Date
- Apr 9, 2018, 20:41 UTC
- Message-ID
- <20180409204129.43537-2-mastahyeti@gmail.com>
- In-Reply-To
- <20180409204129.43537-1-mastahyeti@gmail.com>
From: Jeff King <peff@peff.net>
The config handler for user.signingkey does not check for a boolean value, and thus:
git -c user.signingkey tag
will segfault. We could fix this and even shorten the code by using git_config_string(). But our set_signing_key() helper is used by other code outside of gpg-interface.c, so we must keep it (and we may as well use it, because unlike git_config_string() it does not leak when we overwrite an old value).
Ironically, the handler for gpg.program just below _could_ use git_config_string() but doesn't. But since we're going to touch that in a future patch, we'll leave it alone for now. We will add some whitespace and returns in preparation for adding more config keys, though. --- gpg-interface.c | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/gpg-interface.c b/gpg-interface.c index 4feacf16e5..61c0690e12 100644 --- a/gpg-interface.c +++ b/gpg-interface.c @@ -128,13 +128,19 @@ void set_signing_key(const char *key) int git_gpg_config(const char *var, const char *value, void *cb) { if (!strcmp(var, "user.signingkey")) { + if (!value) + return config_error_nonbool(var); set_signing_key(value); + return 0; } + if (!strcmp(var, "gpg.program")) { if (!value) return config_error_nonbool(var); gpg_program = xstrdup(value); + return 0; } + return 0; }
-- 2.15.1 (Apple Git-101)