X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=diff.c;h=6da52e0c49bc5646594ab47cba3971fd156e021d;hb=8222153d8449cb1d0f9c4b06b7f7f5b0c5128205;hp=d952686926e2e97aab3e369ad192027b4d7e676b;hpb=8678bc09e3a553fdacfbf7f8493e400c399f8e7b;p=git.git diff --git a/diff.c b/diff.c index d95268692..6da52e0c4 100644 --- a/diff.c +++ b/diff.c @@ -63,7 +63,7 @@ static int parse_diff_color_slot(const char *var, int ofs) return DIFF_WHITESPACE; if (!strcasecmp(var+ofs, "func")) return DIFF_FUNCINFO; - die("bad config variable '%s'", var); + return -1; } static int git_config_rename(const char *var, const char *value) @@ -122,6 +122,8 @@ int git_diff_basic_config(const char *var, const char *value, void *cb) if (!prefixcmp(var, "diff.color.") || !prefixcmp(var, "color.diff.")) { int slot = parse_diff_color_slot(var, 11); + if (slot < 0) + return 0; if (!value) return config_error_nonbool(var); color_parse(value, var, diff_colors[slot]); @@ -3774,11 +3776,13 @@ static char *run_textconv(const char *pgm, struct diff_filespec *spec, if (start_command(&child) != 0 || strbuf_read(&buf, child.out, 0) < 0 || finish_command(&child) != 0) { + close(child.out); strbuf_release(&buf); remove_tempfile(); error("error running textconv command '%s'", pgm); return NULL; } + close(child.out); remove_tempfile(); return strbuf_detach(&buf, outsize);