public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Olamide Caleb Bello <belkid98@gmail•com>
To: git@vger•kernel.org
Cc: gitster@pobox•com, usmanakinyemi202@gmail•com,
	christian.couder@gmail•com, kristofferhaugsbakk@fastmail•com,
	Olamide Caleb Bello <belkid98@gmail•com>
Subject: [Outreachy PATCH v5 1/2] gpg-interface: do not use misdesigned strbuf_split*()
Date: Wed, 22 Oct 2025 12:40:19 +0000	[thread overview]
Message-ID: <df8fbbd3a50748fd974083b6bbb07ffca91be465.1761135129.git.belkid98@gmail.com> (raw)
In-Reply-To: <cover.1761135129.git.belkid98@gmail.com>

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.

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
token. This removes the roundabout way of splitting the string into
strbufs just to return the token.

Reported-by: Junio Hamano <gitster@pobox•com>
Helped-by: Christian Couder <christian.couder@gmail•com>
Helped-by: Kristoffer Haugsbakk <kristofferhaugsbakk@fastmail•com>
Signed-off-by: Olamide Caleb Bello <belkid98@gmail•com>
---
 gpg-interface.c | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/gpg-interface.c b/gpg-interface.c
index 2f4f0e32cb..917081abac 100644
--- a/gpg-interface.c
+++ b/gpg-interface.c
@@ -821,8 +821,7 @@ static char *get_ssh_key_fingerprint(const char *signing_key)
 	struct child_process ssh_keygen = CHILD_PROCESS_INIT;
 	int ret = -1;
 	struct strbuf fingerprint_stdout = STRBUF_INIT;
-	struct strbuf **fingerprint;
-	char *fingerprint_ret;
+	char *fingerprint_ret, *begin, *delim;
 	const char *literal_key = NULL;
 
 	/*
@@ -845,13 +844,17 @@ static char *get_ssh_key_fingerprint(const char *signing_key)
 		die_errno(_("failed to get the ssh fingerprint for key '%s'"),
 			  signing_key);
 
-	fingerprint = strbuf_split_max(&fingerprint_stdout, ' ', 3);
-	if (!fingerprint[1])
-		die_errno(_("failed to get the ssh fingerprint for key '%s'"),
+	begin = fingerprint_stdout.buf;
+	delim = strchr(begin, ' ');
+	if (!delim)
+		die(_("failed to get the ssh fingerprint for key %s"),
 			  signing_key);
-
-	fingerprint_ret = strbuf_detach(fingerprint[1], NULL);
-	strbuf_list_free(fingerprint);
+	begin = delim + 1;
+	delim = strchr(begin, ' ');
+	if (!delim)
+	    die(_("failed to get the ssh fingerprint for key %s"),
+			  signing_key);
+	fingerprint_ret = xmemdupz(begin, delim - begin);
 	strbuf_release(&fingerprint_stdout);
 	return fingerprint_ret;
 }
-- 
2.51.0.463.g79cf913ea9


  reply	other threads:[~2025-10-22 12:40 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   ` Olamide Caleb Bello [this message]
2025-10-22 13:56     ` [Outreachy PATCH v5 1/2] gpg-interface: " 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     ` [Outreachy PATCH v6 0/2] " Junio C Hamano
2025-10-24 13:25       ` 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=df8fbbd3a50748fd974083b6bbb07ffca91be465.1761135129.git.belkid98@gmail.com \
    --to=belkid98@gmail$(echo .)com \
    --cc=christian.couder@gmail$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=gitster@pobox$(echo .)com \
    --cc=kristofferhaugsbakk@fastmail$(echo .)com \
    --cc=usmanakinyemi202@gmail$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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