remote-curl: create copy of the service name
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. Currently, all service names are string constants, but a subsequent patch will introduce service names from external sources. Signed-off-by: Brandon Williams <bmwill@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
f1f4d8acf4
commit
f08a5d42ea
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user