git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] builtin-remote: (get_one_entry): use strbuf

From
Bert Wesarg <bert.wesarg@googlemail.com>
Date
Jun 15, 2009, 20:45 UTC
Message-ID
<1245098728-7502-1-git-send-email-bert.wesarg@googlemail.com>
In-Reply-To
<4A35FCFB.1080000@drmicha.warpmail.net>
Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com>
---
On Mon, Jun 15, 2009 at 09:49, Michael J Gruber<git@drmicha.warpmail.net> wrote:
Show 6 quoted lines
> Jim Meyering venit, vidit, dixit 14.06.2009 21:46:
>>
>> * builtin-remote.c (get_one_entry): Use xmalloc, not malloc.
>
> Learning something new with every patch... Sorry, Junio; thanks, Jim!
>
One more reason to re-use existing string handling functions.

Regards, Bert

 builtin-remote.c |   21 ++++++++++-----------
 1 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/builtin-remote.c b/builtin-remote.c
index 709f8a6..31adeaa 100644
--- a/builtin-remote.c
+++ b/builtin-remote.c
@@ -1276,17 +1276,17 @@ static int update(int argc, const char **argv)
 static int get_one_entry(struct remote *remote, void *priv)
 {
 	struct string_list *list = priv;
+	struct strbuf url_buf = STRBUF_INIT;
+	const char *url_str = NULL;
 	const char **url;
 	int i, url_nr;
-	void **utilp;
 
 	if (remote->url_nr > 0) {
-		utilp = &(string_list_append(remote->name, list)->util);
-		*utilp = xmalloc(strlen(remote->url[0])+strlen(" (fetch)")+1);
-		strcpy((char *) *utilp, remote->url[0]);
-		strcat((char *) *utilp, " (fetch)");
-	} else
-		string_list_append(remote->name, list)->util = NULL;
+		strbuf_addf(&url_buf, "%s (fetch)", remote->url[0]);
+		url_str = strbuf_detach(&url_buf, NULL);
+	}
+	string_list_append(remote->name, list)->util = url_str;
+
 	if (remote->pushurl_nr) {
 		url = remote->pushurl;
 		url_nr = remote->pushurl_nr;
@@ -1296,10 +1296,9 @@ static int get_one_entry(struct remote *remote, void *priv)
 	}
 	for (i = 0; i < url_nr; i++)
 	{
-		utilp = &(string_list_append(remote->name, list)->util);
-		*utilp = xmalloc(strlen(url[i])+strlen(" (push)")+1);
-		strcpy((char *) *utilp, url[i]);
-		strcat((char *) *utilp, " (push)");
+		strbuf_addf(&url_buf, "%s (push)", url[i]);
+		url_str = strbuf_detach(&url_buf, NULL);
+		string_list_append(remote->name, list)->util = url_str;
 	}
 
 	return 0;
-- 
tg: (d6a466e..) bw/remote-v-use-strbuf (depends on: next)
Previous: Michael J GruberNext: Michael J Gruber
Message 3 of 9 in “avoid NULL dereference on failed malloc”
  1. avoid NULL dereference on failed mallocJim Meyering, Jun 14, 2009
  2. Michael J GruberJun 15, 2009
  3. builtin-remote: (get_one_entry): use strbufBert Wesarg, Jun 15, 2009
  4. Michael J GruberJun 16, 2009
  5. Bert WesargJun 16, 2009
  6. Michael J GruberJun 16, 2009
  7. builtin-remote: (get_one_entry): use strbufBert Wesarg, Jun 22, 2009
  8. Jeff KingJun 22, 2009
  9. builtin-remote: (get_one_entry): use strbufBert Wesarg, Jun 22, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.