# [PATCH/RFC] Bugfix for AIX tmpfile creation

6 messages from 2008-06-23 to 2008-06-23. Participants: Patrick Higgins, Junio C Hamano, Linus Torvalds, patrick.higgins@cexp.com.
Thread: https://gitlist.dev/t/14107

## Patrick Higgins, 2008-06-23 21:33

Subject: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <1214256821-3169-1-git-send-email-patrick.higgins@cexp.com>
URL: https://gitlist.dev/e/1214256821-3169-1-git-send-email-patrick.higgins%40cexp.com

```
The AIX mkstemp will modify it's template parameter to an empty string if
the call fails. This caused a subsequent mkdir to fail.

Signed-off-by: Patrick Higgins <patrick.higgins@cexp.com>
---
 sha1_file.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/sha1_file.c b/sha1_file.c
index 191f814..92299ed 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -2118,6 +2118,7 @@ static int create_tmpfile(char *buffer, size_t bufsiz, const char *filename)
 	fd = mkstemp(buffer);
 	if (fd < 0 && dirlen) {
 		/* Make sure the directory exists */
+		memcpy(buffer, filename, dirlen);
 		buffer[dirlen-1] = 0;
 		if (mkdir(buffer, 0777) || adjust_shared_perm(buffer))
 			return -1;
-- 
1.5.6.dirty

```

## Junio C Hamano, 2008-06-23 22:29

Subject: Re: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <7vy74vg4zq.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vy74vg4zq.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1214256821-3169-1-git-send-email-patrick.higgins@cexp.com>

```
Hmm, we have quite a few calls to mkstemp(), so adding the workaround to
this specific call site does not scale well as a fix, I am afraid.

Some callers do not want to use the xmkstemp() (because the function
always dies upon failure), so working around this bug in xmkstemp() won't
solve it either, unfortunately.  We would probably need compat/mkstemp.c
that wraps problematic mkstemp() on platforms with broken mkstemp()
implementation.

```

## Linus Torvalds, 2008-06-23 22:55

Subject: Re: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <alpine.LFD.1.10.0806231552510.2926@woody.linux-foundation.org>
URL: https://gitlist.dev/e/alpine.LFD.1.10.0806231552510.2926%40woody.linux-foundation.org
In-Reply-To: <7vy74vg4zq.fsf@gitster.siamese.dyndns.org>

```


On Mon, 23 Jun 2008, Junio C Hamano wrote:
>
> Hmm, we have quite a few calls to mkstemp(), so adding the workaround to
> this specific call site does not scale well as a fix, I am afraid.

All other callers of mkstemp() always rewrite the _entire_ path and don't 
care about the result after failure (since it failed)

The new 'create_tmpfile()' usage was/is special in that it re-uses the 
path without recreating it all, just the final part.

So I think Patrick's patch is fine and sufficient. Maybe I missed some in 
my quick grep, but it does look ok, and the create_tmpfile() usage really 
was pretty special.

		Linus

```

## patrick.higgins@cexp.com, 2008-06-23 23:07

Subject: RE: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <911589C97062424796D53B625CEC0025E46183@USCOBRMFA-SE-70.northamerica.cexp.com>
URL: https://gitlist.dev/e/911589C97062424796D53B625CEC0025E46183%40USCOBRMFA-SE-70.northamerica.cexp.com
In-Reply-To: <alpine.LFD.1.10.0806231552510.2926@woody.linux-foundation.org>

```
On Behalf Of Linus Torvalds
> To: Junio C Hamano
> 
> On Mon, 23 Jun 2008, Junio C Hamano wrote:
> >
> > Hmm, we have quite a few calls to mkstemp(), so adding the 
> workaround to
> > this specific call site does not scale well as a fix, I am afraid.
> 
> All other callers of mkstemp() always rewrite the _entire_ 
> path and don't 
> care about the result after failure (since it failed)
> 
> The new 'create_tmpfile()' usage was/is special in that it 
> re-uses the 
> path without recreating it all, just the final part.
> 
> So I think Patrick's patch is fine and sufficient. Maybe I 
> missed some in 
> my quick grep, but it does look ok, and the create_tmpfile() 
> usage really 
> was pretty special.

This is the only problem I've seen with it so far on AIX. I was really surprised because I hadn't seen any problems with any of the release candidates and had been using them all as they came out so I got lazy and didn't test the final release, but one of my co-workers let me know that it is broken this morning. Even the most basic things like git-add stopped working, and applying this small patch fixed all test cases. The irony is of course that I wanted 1.5.6 for the improved AIX support and the final release is completely broken on AIX!

```

## Junio C Hamano, 2008-06-23 23:10

Subject: Re: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <7viqvzg33c.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7viqvzg33c.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <alpine.LFD.1.10.0806231552510.2926@woody.linux-foundation.org>

```
Linus Torvalds <torvalds@linux-foundation.org> writes:

> On Mon, 23 Jun 2008, Junio C Hamano wrote:
>>
>> Hmm, we have quite a few calls to mkstemp(), so adding the workaround to
>> this specific call site does not scale well as a fix, I am afraid.
>
> All other callers of mkstemp() always rewrite the _entire_ path and don't 
> care about the result after failure (since it failed)

Yeah, I realize I grepped wrong X-<.

```

## Junio C Hamano, 2008-06-23 23:14

Subject: Re: [PATCH/RFC] Bugfix for AIX tmpfile creation
Message-ID: <7vej6ng2w0.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vej6ng2w0.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <911589C97062424796D53B625CEC0025E46183@USCOBRMFA-SE-70.northamerica.cexp.com>

```
<Patrick.Higgins@cexp.com> writes:

> The irony is of course that I wanted 1.5.6 for the improved AIX support
> and the final release is completely broken on AIX!

Yeah, queued to 'maint' for 1.5.6.1.  Thanks

```
