All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Olamide Caleb Bello <belkid98@gmail.com>
Cc: git@vger.kernel.org,  usmanakinyemi202@gmail.com,
	christian.couder@gmail.com,  kristofferhaugsbakk@fastmail.com
Subject: Re: [Outreachy PATCH v6 0/2] do not use misdesigned strbuf_split*()
Date: Thu, 23 Oct 2025 09:27:34 -0700	[thread overview]
Message-ID: <xmqqecqtwpl5.fsf@gitster.g> (raw)
In-Reply-To: <cover.1761217100.git.belkid98@gmail.com> (Olamide Caleb Bello's message of "Thu, 23 Oct 2025 11:13:45 +0000")

Olamide Caleb Bello <belkid98@gmail.com> writes:

> Changes in v6
> =============
> - Modify commit messages to have proper structure
> - Changed logic in get_default_ssh_signing_key() to use xmemdupz() if
>   key has '\n' and xstrdup() if not.

This round looks good to me.  Christian, should we declare victory
and mark it for 'next' now?

Thanks.

>
> Olamide Caleb Bello (2):
>   gpg-interface: do not use misdesigned strbuf_split*()
>   gpg-interface: do not use misdesigned strbuf_split*()
>
>  gpg-interface.c | 34 +++++++++++++++++++++-------------
>  1 file changed, 21 insertions(+), 13 deletions(-)
>
> Range diff versus v5
> ====================
>
> 1:  df8fbbd3a5 ! 1:  92fc78c203 gpg-interface: do not use misdesigned strbuf_split*()
>     @@ Commit message
>          gpg-interface: do not use misdesigned strbuf_split*()
>
>          In get_ssh_finger_print(), the output of the `ssh-keygen` command is
>     -    put into `fingerprint_stdout` strbuf.
>     -    The string in `fingerprint_stdout` is then split into up to 3 strbufs
>     -    using strbuf_split_max(). However they are not modified after the split
>     -    thereby not making use of the strbuf API as the fingerprint token is
>     -    merely returned as a char * and not a strbuf. Hence they do not need to be
>     -    strbufs.
>     +    put into `fingerprint_stdout` strbuf. The string in `fingerprint_stdout`
>     +    is then split into up to 3 strbufs using strbuf_split_max(). However they
>     +    are not modified after the split thereby not making use of the strbuf API
>     +    as the fingerprint token is merely returned as a char * and not a strbuf.
>     +    Hence they do not need to be strbufs.
>
>          Simplify the process of retrieving and returning the desired token by
>          using strchr() to isolate the token and xmemdupz() to return a copy of the
> 2:  5df667227b ! 2:  e52855242c gpg-interface: do not use misdesigned strbuf_split*()
>     @@ Commit message
>
>          Simplify the process of retrieving and returning the desired line by
>          using strchr() to isolate the line and xmemdupz() to return a copy of the
>     -    line.
>     -    This removes the roundabout way of splitting the string into strbufs, just
>     -    to return the line.
>     +    line. This removes the roundabout way of splitting the string into
>     +    strbufs, just to return the line.
>
>          Reported-by: Junio Hamano <gitster@pobox.com>
>          Helped-by: Christian Couder <christian.couder@gmail.com>
>     @@ gpg-interface.c: static char *get_default_ssh_signing_key(void)
>       	int n;
>       	char *default_key = NULL;
>       	const char *literal_key = NULL;
>     -+	char *begin, *new_line, *first_line, *end;
>     ++	char *begin, *new_line, *first_line;
>
>       	if (!ssh_default_key_command)
>       		die(_("either user.signingkey or gpg.ssh.defaultKeyCommand needs to be configured"));
>     @@ gpg-interface.c: static char *get_default_ssh_signing_key(void)
>      -		if (keys[0] && is_literal_ssh_key(keys[0]->buf, &literal_key)) {
>      +		begin = key_stdout.buf;
>      +		new_line = strchr(begin, '\n');
>     -+		end = new_line ? new_line : strchr(begin, '\0');
>     -+		first_line = xmemdupz(begin, end - begin);
>     ++		if (new_line)
>     ++			first_line = xmemdupz(begin, new_line - begin);
>     ++		else
>     ++			first_line = xstrdup(begin);
>      +		if (is_literal_ssh_key(first_line, &literal_key)) {
>       			/*
>       			 * We only use `is_literal_ssh_key` here to check validity
>
> --
> 2.51.0.463.g79cf913ea9

  parent reply	other threads:[~2025-10-23 16:27 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-20 22:55 [Outreachy PATCH v4 0/2] do not use strbuf_split*() Olamide Caleb Bello
2025-10-20 22:55 ` [Outreachy PATCH v4 1/2] gpg-interface: do not use misdesigned strbuf_split*() Olamide Caleb Bello
2025-10-21  6:46   ` Christian Couder
2025-10-21  6:51     ` Christian Couder
2025-10-21 11:18     ` Bello Olamide
2025-10-21 16:26     ` Junio C Hamano
2025-10-20 22:55 ` [Outreachy PATCH v4 2/2] gpg-interface: do not use misdesigned strbuf_split*() [Part 2] Olamide Caleb Bello
2025-10-21  7:01   ` Christian Couder
2025-10-21 12:12     ` Bello Olamide
2025-10-21  7:19 ` [Outreachy PATCH v4 0/2] do not use strbuf_split*() Christian Couder
2025-10-21 10:19   ` Bello Olamide
2025-10-21 17:13     ` Junio C Hamano
2025-10-22  7:16       ` Bello Olamide
2025-10-22 12:40 ` [Outreachy PATCH v5 0/2] do not use misdesigned strbuf_split*() Olamide Caleb Bello
2025-10-22 12:40   ` [Outreachy PATCH v5 1/2] gpg-interface: " Olamide Caleb Bello
2025-10-22 13:56     ` Christian Couder
2025-10-23  8:14       ` Bello Olamide
2025-10-22 12:40   ` [Outreachy PATCH v5 2/2] " Olamide Caleb Bello
2025-10-22 14:03     ` Christian Couder
2025-10-22 17:44       ` Junio C Hamano
2025-10-23  8:17       ` Bello Olamide
2025-10-23 11:13   ` [Outreachy PATCH v6 0/2] " Olamide Caleb Bello
2025-10-23 11:13     ` [Outreachy PATCH v6 1/2] gpg-interface: " Olamide Caleb Bello
2025-10-23 11:13     ` [Outreachy PATCH v6 2/2] " Olamide Caleb Bello
2025-10-23 16:27     ` Junio C Hamano [this message]
2025-10-24 13:25       ` [Outreachy PATCH v6 0/2] " Christian Couder

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=xmqqecqtwpl5.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=belkid98@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=kristofferhaugsbakk@fastmail.com \
    --cc=usmanakinyemi202@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.