mirror of
https://github.com/git/git.git
synced 2024-10-28 12:59:41 +01:00
trailer: handle NULL value when parsing trailer-specific config
When parsing the "key", "command", and "cmd" trailer config, we just make a copy of the value string. If we see an implicit bool like: [trailer "foo"] key we'll segfault trying to copy a NULL pointer. We can fix this with the usual config_error_nonbool() check. I split this out from the other vanilla cases, because at first glance it looks like a better fix here would be to move the NULL check out of the switch statement. But it would change the behavior of other keys like trailer.*.ifExists, where an implicit bool is interpreted as EXISTS_DEFAULT. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
34b1a0d320
commit
1b274c9834
1 changed files with 6 additions and 0 deletions
|
@ -553,16 +553,22 @@ static int git_trailer_config(const char *conf_key, const char *value,
|
|||
case TRAILER_KEY:
|
||||
if (conf->key)
|
||||
warning(_("more than one %s"), conf_key);
|
||||
if (!value)
|
||||
return config_error_nonbool(conf_key);
|
||||
conf->key = xstrdup(value);
|
||||
break;
|
||||
case TRAILER_COMMAND:
|
||||
if (conf->command)
|
||||
warning(_("more than one %s"), conf_key);
|
||||
if (!value)
|
||||
return config_error_nonbool(conf_key);
|
||||
conf->command = xstrdup(value);
|
||||
break;
|
||||
case TRAILER_CMD:
|
||||
if (conf->cmd)
|
||||
warning(_("more than one %s"), conf_key);
|
||||
if (!value)
|
||||
return config_error_nonbool(conf_key);
|
||||
conf->cmd = xstrdup(value);
|
||||
break;
|
||||
case TRAILER_WHERE:
|
||||
|
|
Loading…
Reference in a new issue