am: close stream on error, but not stdin
Avoid closing stdin, but do close an actual input file on error exit. Found with Cppcheck. Signed-off-by: Rene Scharfe <l.s.r@web.de> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
49800c9407
commit
ac8ce18d89
@ -762,14 +762,18 @@ static int split_mail_conv(mail_conv_fn fn, struct am_state *state,
|
||||
mail = mkpath("%s/%0*d", state->dir, state->prec, i + 1);
|
||||
|
||||
out = fopen(mail, "w");
|
||||
if (!out)
|
||||
if (!out) {
|
||||
if (in != stdin)
|
||||
fclose(in);
|
||||
return error_errno(_("could not open '%s' for writing"),
|
||||
mail);
|
||||
}
|
||||
|
||||
ret = fn(out, in, keep_cr);
|
||||
|
||||
fclose(out);
|
||||
fclose(in);
|
||||
if (in != stdin)
|
||||
fclose(in);
|
||||
|
||||
if (ret)
|
||||
return error(_("could not parse patch '%s'"), *paths);
|
||||
|
Loading…
Reference in New Issue
Block a user