From: Junio C Hamano Date: Fri, 26 Feb 2021 22:41:36 GMT Subject: Re: [PATCH] pack-revindex.c: don't close unopened file descriptors Message-ID: In-Reply-To: <34c017296a7c5fe4a2ea70f8a0b2d8586b34a4dc.1614357030.git.me@ttaylorr.com> Taylor Blau writes: > When opening a reverse index, load_revindex_from_disk() jumps to the > 'cleanup' label in case something goes wrong: the reverse index had the > wrong size, an unrecognized version, or similar. > > It also jumps to this label when the reverse index couldn't be opened in > the first place, which will cause an error with the unguarded close() > call in the label. > > Guard this call with "if (fd >= 0)" to make sure that we have a valid > file descriptor to close before attempting to close it. > > Reported-by: Johannes Schindelin > Signed-off-by: Taylor Blau > --- > Dscho mentioned this to me privately when reviewing Coverity results for > -rc0. This one is legitimate, and the fix is easy enough, too. Thanks, both. > > pack-revindex.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/pack-revindex.c b/pack-revindex.c > index 83fe4de773..4262530449 100644 > --- a/pack-revindex.c > +++ b/pack-revindex.c > @@ -253,7 +253,8 @@ static int load_revindex_from_disk(char *revindex_name, > *data_p = (const uint32_t *)data; > } > > - close(fd); > + if (fd >= 0) > + close(fd); > return ret; > } > > -- > 2.30.0.667.g81c0cbc6fd