From: Junio C Hamano <gitster@pobox.com>
To: "René Scharfe" <l.s.r@web.de>
Cc: Git List <git@vger.kernel.org>
Subject: Re: [PATCH] wrapper: simplify xmkstemp()
Date: Mon, 17 Nov 2025 13:52:53 -0800 [thread overview]
Message-ID: <xmqqbjl0iax6.fsf@gitster.g> (raw)
In-Reply-To: <058c5722-30f5-4bc5-90f5-24e4c6f3ff8f@web.de> ("René Scharfe"'s message of "Mon, 17 Nov 2025 20:42:55 +0100")
René Scharfe <l.s.r@web.de> writes:
> Call xmkstemp_mode() instead of duplicating its error handling code.
> This switches the implementation from the system's mkstemp(3) to our own
> git_mkstemp_mode(), which works just as well.
>
> Signed-off-by: René Scharfe <l.s.r@web.de>
> ---
> wrapper.c | 19 +------------------
> 1 file changed, 1 insertion(+), 18 deletions(-)
>
> diff --git a/wrapper.c b/wrapper.c
> index 3d507d4204..d5976b3e7e 100644
> --- a/wrapper.c
> +++ b/wrapper.c
> @@ -421,24 +421,7 @@ FILE *fopen_or_warn(const char *path, const char *mode)
>
> int xmkstemp(char *filename_template)
> {
> - int fd;
> - char origtemplate[PATH_MAX];
> - strlcpy(origtemplate, filename_template, sizeof(origtemplate));
> -
> - fd = mkstemp(filename_template);
> - if (fd < 0) {
> - int saved_errno = errno;
> - const char *nonrelative_template;
> -
> - if (strlen(filename_template) != strlen(origtemplate))
> - filename_template = origtemplate;
> -
> - nonrelative_template = absolute_path(filename_template);
> - errno = saved_errno;
> - die_errno("Unable to create temporary file '%s'",
> - nonrelative_template);
> - }
> - return fd;
> + return xmkstemp_mode(filename_template, 0600);
> }
A patch that loses lines is nice. My curiosity wonders what the
strlen() comparison in the original was about, but let's not waste
our brain cycles to code that we no longer use ;-). xmkstemp_mode()
checks if our git_mkstemp_mode() cleared the template[0] as a sign
to restore the origtemplate, and uses the template that was munged
by git_mkstemp_mode() and used to attempt opening it, which seems
very sensible.
Will queue. Thanks.
next prev parent reply other threads:[~2025-11-17 21:52 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-17 19:42 [PATCH] wrapper: simplify xmkstemp() René Scharfe
2025-11-17 21:52 ` Junio C Hamano [this message]
2025-11-18 9:46 ` Jeff King
2025-11-18 22:29 ` René Scharfe
2025-11-18 23:08 ` Junio C Hamano
2025-11-20 8:23 ` Jeff King
2025-11-20 14:39 ` Junio C Hamano
2025-11-22 13:29 ` René Scharfe
2025-11-22 13:24 ` René Scharfe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqbjl0iax6.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=l.s.r@web.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).