transport_anonymize_url: use xstrfmt
This function uses xcalloc and two memcpy calls to concatenate two strings. We can do this as an xstrfmt one-liner, and then it is more clear that we are allocating the correct amount of memory. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
7eb45b5f78
commit
21f9d0f6f2
@ -1350,7 +1350,7 @@ int transport_disconnect(struct transport *transport)
|
|||||||
*/
|
*/
|
||||||
char *transport_anonymize_url(const char *url)
|
char *transport_anonymize_url(const char *url)
|
||||||
{
|
{
|
||||||
char *anon_url, *scheme_prefix, *anon_part;
|
char *scheme_prefix, *anon_part;
|
||||||
size_t anon_len, prefix_len = 0;
|
size_t anon_len, prefix_len = 0;
|
||||||
|
|
||||||
anon_part = strchr(url, '@');
|
anon_part = strchr(url, '@');
|
||||||
@ -1384,10 +1384,8 @@ char *transport_anonymize_url(const char *url)
|
|||||||
goto literal_copy;
|
goto literal_copy;
|
||||||
prefix_len = scheme_prefix - url + 3;
|
prefix_len = scheme_prefix - url + 3;
|
||||||
}
|
}
|
||||||
anon_url = xcalloc(1, 1 + prefix_len + anon_len);
|
return xstrfmt("%.*s%.*s", (int)prefix_len, url,
|
||||||
memcpy(anon_url, url, prefix_len);
|
(int)anon_len, anon_part);
|
||||||
memcpy(anon_url + prefix_len, anon_part, anon_len);
|
|
||||||
return anon_url;
|
|
||||||
literal_copy:
|
literal_copy:
|
||||||
return xstrdup(url);
|
return xstrdup(url);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user