Re: [PATCH 2/2] am: plug FILE * leak in split_mail_conv()
- From
- Mikael Magnusson <mikachu@gmail.com>
- Date
- May 12, 2016, 05:23 UTC
- Message-ID
- <CAHYJk3Q90MrV_hxF+xxbFnJtL6_OLqTRoekwjc9-_LJuFc-aTg@mail.gmail.com>
- In-Reply-To
- <20160512044730.GA5436@sigill.intra.peff.net>
On Thu, May 12, 2016 at 6:47 AM, Jeff King <peff@peff.net> wrote:
Show 24 quoted lines
> On Wed, May 11, 2016 at 04:35:46PM -0700, Junio C Hamano wrote:
>
>> Signed-off-by: Junio C Hamano <gitster@pobox.com>
>> ---
>> builtin/am.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/builtin/am.c b/builtin/am.c
>> index f1a84c6..a373928 100644
>> --- a/builtin/am.c
>> +++ b/builtin/am.c
>> @@ -761,9 +761,11 @@ 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) {
>> + fclose(in);
>> return error(_("could not open '%s' for writing: %s"),
>> mail, strerror(errno));
>> + }
>
> Presumably `fclose` doesn't ever overwrite errno in practice, but I
> guess it could in theory.It probably does pretty often in general, but not when the file is opened for input only.
-- Mikael Magnusson