[PATCH v2 26/27] remote-curl: create copy of the service name
From: Brandon Williams <hidden>
Date: 2018-01-25 23:59:51
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Brandon Williams <hidden>
Date: 2018-01-25 23:59:51
Subsystem:
the rest · Maintainer:
Linus Torvalds
Make a copy of the service name being requested instead of relying on the buffer pointed to by the passed in 'const char *' to remain unchanged. Signed-off-by: Brandon Williams <redacted> --- remote-curl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/remote-curl.c b/remote-curl.c
index dae8a4a48..4086aa733 100644
--- a/remote-curl.c
+++ b/remote-curl.c@@ -165,7 +165,7 @@ static int set_option(const char *name, const char *value) } struct discovery { - const char *service; + char *service; char *buf_alloc; char *buf; size_t len;
@@ -257,6 +257,7 @@ static void free_discovery(struct discovery *d) free(d->shallow.oid); free(d->buf_alloc); free_refs(d->refs); + free(d->service); free(d); } }
@@ -343,7 +344,7 @@ static struct discovery *discover_refs(const char *service, int for_push) warning(_("redirecting to %s"), url.buf); last= xcalloc(1, sizeof(*last_discovery)); - last->service = service; + last->service = xstrdup(service); last->buf_alloc = strbuf_detach(&buffer, &last->len); last->buf = last->buf_alloc;
--
2.16.0.rc1.238.g530d649a79-goog