Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
diff.c: guard config parser from value=NULL
author
Junio C Hamano
<gitster@pobox.com>
Mon, 11 Feb 2008 18:53:56 +0000
(10:53 -0800)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 11 Feb 2008 21:11:36 +0000
(13:11 -0800)
diff.external, diff.*.command, diff.color.*, color.diff.* and
diff.*.funcname configuration variables expect a string value.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
a7269e5
)
diff --git
a/diff.c
b/diff.c
index 5b8afdcb05abd4f634b49adb2f521fc75e220647..4d2e23ae1b7dd4bd43d5c03871ce8ab519272115 100644
(file)
--- a/
diff.c
+++ b/
diff.c
@@
-158,6
+158,8
@@
int git_diff_ui_config(const char *var, const char *value)
return 0;
}
if (!strcmp(var, "diff.external")) {
return 0;
}
if (!strcmp(var, "diff.external")) {
+ if (!value)
+ return config_error_nonbool(var);
external_diff_cmd_cfg = xstrdup(value);
return 0;
}
external_diff_cmd_cfg = xstrdup(value);
return 0;
}
@@
-165,8
+167,11
@@
int git_diff_ui_config(const char *var, const char *value)
const char *ep = strrchr(var, '.');
if (ep != var + 4) {
const char *ep = strrchr(var, '.');
if (ep != var + 4) {
- if (!strcmp(ep, ".command"))
+ if (!strcmp(ep, ".command")) {
+ if (!value)
+ return config_error_nonbool(var);
return parse_lldiff_command(var, ep, value);
return parse_lldiff_command(var, ep, value);
+ }
}
}
}
}
@@
-177,6
+182,8
@@
int git_diff_basic_config(const char *var, const char *value)
{
if (!prefixcmp(var, "diff.color.") || !prefixcmp(var, "color.diff.")) {
int slot = parse_diff_color_slot(var, 11);
{
if (!prefixcmp(var, "diff.color.") || !prefixcmp(var, "color.diff.")) {
int slot = parse_diff_color_slot(var, 11);
+ if (!value)
+ return config_error_nonbool(var);
color_parse(value, var, diff_colors[slot]);
return 0;
}
color_parse(value, var, diff_colors[slot]);
return 0;
}
@@
-184,8
+191,11
@@
int git_diff_basic_config(const char *var, const char *value)
if (!prefixcmp(var, "diff.")) {
const char *ep = strrchr(var, '.');
if (ep != var + 4) {
if (!prefixcmp(var, "diff.")) {
const char *ep = strrchr(var, '.');
if (ep != var + 4) {
- if (!strcmp(ep, ".funcname"))
+ if (!strcmp(ep, ".funcname")) {
+ if (!value)
+ return config_error_nonbool(var);
return parse_funcname_pattern(var, ep, value);
return parse_funcname_pattern(var, ep, value);
+ }
}
}
}
}