# [PATCH] Fix resource leaks in wrapper.c

4 messages from 2009-10-27 to 2009-10-27. Participants: Laszlo Papp, Johannes Sixt, Michael J Gruber.
Thread: https://gitlist.dev/t/21371

## Laszlo Papp, 2009-10-27 03:53

Subject: [PATCH] Fix resource leaks in wrapper.c
Message-ID: <1256615635-4940-1-git-send-email-djszapi@archlinux.us>
URL: https://gitlist.dev/e/1256615635-4940-1-git-send-email-djszapi%40archlinux.us

```
Fix the following issues with the desired close tags:

[wrapper.c:276]: (error) Resource leak: fd
[wrapper.c:291]: (error) Resource leak: fd

Signed-off-by: Laszlo Papp <djszapi@archlinux.us>
---
 wrapper.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/wrapper.c b/wrapper.c
index c9be140..76ecf0a 100644
--- a/wrapper.c
+++ b/wrapper.c
@@ -266,7 +266,7 @@ int odb_mkstemp(char *template, size_t limit, const char *pattern)
 	fd = mkstemp(template);
 	if (0 <= fd)
 		return fd;
-
+	close(fd);
 	/* slow path */
 	/* some mkstemp implementations erase template on failure */
 	snprintf(template, limit, "%s/%s",
@@ -284,7 +284,7 @@ int odb_pack_keep(char *name, size_t namesz, unsigned char *sha1)
 	fd = open(name, O_RDWR|O_CREAT|O_EXCL, 0600);
 	if (0 <= fd)
 		return fd;
-
+	close(fd);
 	/* slow path */
 	safe_create_leading_directories(name);
 	return open(name, O_RDWR|O_CREAT|O_EXCL, 0600);
-- 
1.6.5

```

## Johannes Sixt, 2009-10-27 07:13

Subject: Re: [PATCH] Fix resource leaks in wrapper.c
Message-ID: <4AE69DA7.6030704@viscovery.net>
URL: https://gitlist.dev/e/4AE69DA7.6030704%40viscovery.net
In-Reply-To: <1256615635-4940-1-git-send-email-djszapi@archlinux.us>

```
Laszlo Papp schrieb:
> @@ -266,7 +266,7 @@ int odb_mkstemp(char *template, size_t limit, const char *pattern)
>  	fd = mkstemp(template);
>  	if (0 <= fd)
>  		return fd;
> -
> +	close(fd);

Sorry, where is here a resource leak? You are "closing" something that was
never opened because fd is less than zero.

Ditto for the other case.

-- Hannes

```

## Michael J Gruber, 2009-10-27 08:26

Subject: Re: [PATCH] Fix resource leaks in wrapper.c
Message-ID: <4AE6AEC8.4040800@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4AE6AEC8.4040800%40drmicha.warpmail.net
In-Reply-To: <4AE69DA7.6030704@viscovery.net>

```
Johannes Sixt venit, vidit, dixit 27.10.2009 08:13:
> Laszlo Papp schrieb:
>> @@ -266,7 +266,7 @@ int odb_mkstemp(char *template, size_t limit, const char *pattern)
>>  	fd = mkstemp(template);
>>  	if (0 <= fd)
>>  		return fd;
>> -
>> +	close(fd);
> 
> Sorry, where is here a resource leak? You are "closing" something that was
> never opened because fd is less than zero.
> 
> Ditto for the other case.

I guess it's about silencing some challenged code analysis tool. I
recall that last time we had something like this we decided that coders
are smarter than tools... and also that clean up like this (for real
leaks) would be something for libgit.

Michael

```

## Michael J Gruber, 2009-10-27 11:44

Subject: Re: [PATCH] Fix resource leaks in wrapper.c
Message-ID: <4AE6DD20.6000308@drmicha.warpmail.net>
URL: https://gitlist.dev/e/4AE6DD20.6000308%40drmicha.warpmail.net
In-Reply-To: <a362e8010910270335g106024e6if3f016c271ab55d6@mail.gmail.com>

```
Laszlo Papp venit, vidit, dixit 27.10.2009 11:35:
> 
> 
> On Tue, Oct 27, 2009 at 9:26 AM, Michael J Gruber
> <git@drmicha.warpmail.net <mailto:git@drmicha.warpmail.net>> wrote:
> 
>     Johannes Sixt venit, vidit, dixit 27.10.2009 08:13:
>     > Laszlo Papp schrieb:
>     >> @@ -266,7 +266,7 @@ int odb_mkstemp(char *template, size_t limit,
>     const char *pattern)
>     >>      fd = mkstemp(template);
>     >>      if (0 <= fd)
>     >>              return fd;
>     >> -
>     >> +    close(fd);
>     >
>     > Sorry, where is here a resource leak? You are "closing" something
>     that was
>     > never opened because fd is less than zero.
>     >
>     > Ditto for the other case.
> 
>     I guess it's about silencing some challenged code analysis tool. I
>     recall that last time we had something like this we decided that coders
>     are smarter than tools... and also that clean up like this (for real
>     leaks) would be something for libgit.
> 
>     Michael
> 
> 
> Yeah you're rights guys, sorry for my fault, this cppcheck program is
> not the best at this momment, really sorry.

No need to feel overly sorry, but in general it helps if, in a commit
message or thereabout, you say something like "cppcheck found the
following (potential) errors".

Cheers,
Michael

```
