Skip to content

Commit d406f68

Browse files
committed
Merge branch 'jk/do-not-printf-NULL' into maint
"git config" had a codepath that tried to pass a NULL to printf("%s"), which nobody seems to have noticed. * jk/do-not-printf-NULL: git_config_set_multivar_in_file: handle "unset" errors git_config_set_multivar_in_file: all non-zero returns are errors config: lower-case first word of error strings
2 parents 6b9eee2 + 1cae428 commit d406f68

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

config.c

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ static int handle_path_include(const char *path, struct config_include_data *inc
108108

109109
expanded = expand_user_path(path);
110110
if (!expanded)
111-
return error("Could not expand include path '%s'", path);
111+
return error("could not expand include path '%s'", path);
112112
path = expanded;
113113

114114
/*
@@ -950,7 +950,7 @@ static int git_default_branch_config(const char *var, const char *value)
950950
else if (!strcmp(value, "always"))
951951
autorebase = AUTOREBASE_ALWAYS;
952952
else
953-
return error("Malformed value for %s", var);
953+
return error("malformed value for %s", var);
954954
return 0;
955955
}
956956

@@ -976,7 +976,7 @@ static int git_default_push_config(const char *var, const char *value)
976976
else if (!strcmp(value, "current"))
977977
push_default = PUSH_DEFAULT_CURRENT;
978978
else {
979-
error("Malformed value for %s: %s", var, value);
979+
error("malformed value for %s: %s", var, value);
980980
return error("Must be one of nothing, matching, simple, "
981981
"upstream or current.");
982982
}
@@ -2217,9 +2217,13 @@ void git_config_set_multivar_in_file(const char *config_filename,
22172217
const char *key, const char *value,
22182218
const char *value_regex, int multi_replace)
22192219
{
2220-
if (git_config_set_multivar_in_file_gently(config_filename, key, value,
2221-
value_regex, multi_replace) < 0)
2222-
die(_("Could not set '%s' to '%s'"), key, value);
2220+
if (!git_config_set_multivar_in_file_gently(config_filename, key, value,
2221+
value_regex, multi_replace))
2222+
return;
2223+
if (value)
2224+
die(_("could not set '%s' to '%s'"), key, value);
2225+
else
2226+
die(_("could not unset '%s'"), key);
22232227
}
22242228

22252229
int git_config_set_multivar_gently(const char *key, const char *value,
@@ -2400,7 +2404,7 @@ int git_config_rename_section(const char *old_name, const char *new_name)
24002404
#undef config_error_nonbool
24012405
int config_error_nonbool(const char *var)
24022406
{
2403-
return error("Missing value for '%s'", var);
2407+
return error("missing value for '%s'", var);
24042408
}
24052409

24062410
int parse_config_key(const char *var,

0 commit comments

Comments
 (0)