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);
 }