OSDN Git Service

Fix odb_mkstemp() on AIX
authorMike Ralphson <mike@abacus.co.uk>
Thu, 26 Feb 2009 15:31:52 +0000 (16:31 +0100)
committerJunio C Hamano <gitster@pobox.com>
Thu, 26 Feb 2009 16:40:27 +0000 (08:40 -0800)
The AIX mkstemp() modifies its template parameter to an empty string if
the call fails.  The existing code had already recomputed the template,
but too late to be good.

See also 6ff6af62, which fixed this problem in a different spot.

Signed-off-by: Mike Ralphson <mike@abacus.co.uk>
Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
wrapper.c

index 231a58f..5e9de29 100644 (file)
--- a/wrapper.c
+++ b/wrapper.c
@@ -208,9 +208,10 @@ int odb_mkstemp(char *template, size_t limit, const char *pattern)
                return fd;
 
        /* slow path */
-       safe_create_leading_directories(template);
+       /* some mkstemp implementations erase template on failure */
        snprintf(template, limit, "%s/%s",
                 get_object_directory(), pattern);
+       safe_create_leading_directories(template);
        return xmkstemp(template);
 }