From: Jeremy Kerr Date: Thu, 26 Sep 2013 03:44:33 +0000 (+0800) Subject: lib/url: talloc from new URL in pb_url_copy X-Git-Tag: v1.0.0~414 X-Git-Url: https://git.ozlabs.org/?a=commitdiff_plain;h=8ad9aba4b4463c9231eb441c81694686443b011a;p=petitboot lib/url: talloc from new URL in pb_url_copy We're ending up with members of new_url being allocated from the old URL's context. We should be tallocing from the new_url instead. Signed-off-by: Jeremy Kerr --- diff --git a/lib/url/url.c b/lib/url/url.c index 6d1004f..8a3d0db 100644 --- a/lib/url/url.c +++ b/lib/url/url.c @@ -254,13 +254,13 @@ static struct pb_url *pb_url_copy(void *ctx, const struct pb_url *url) new_url = talloc(ctx, struct pb_url); new_url->scheme = url->scheme; - new_url->full = talloc_strdup(url, url->full); + new_url->full = talloc_strdup(new_url, url->full); - new_url->host = url->host ? talloc_strdup(url, url->host) : NULL; - new_url->port = url->port ? talloc_strdup(url, url->port) : NULL; - new_url->path = url->path ? talloc_strdup(url, url->path) : NULL; - new_url->dir = url->dir ? talloc_strdup(url, url->dir) : NULL; - new_url->file = url->file ? talloc_strdup(url, url->file) : NULL; + new_url->host = url->host ? talloc_strdup(new_url, url->host) : NULL; + new_url->port = url->port ? talloc_strdup(new_url, url->port) : NULL; + new_url->path = url->path ? talloc_strdup(new_url, url->path) : NULL; + new_url->dir = url->dir ? talloc_strdup(new_url, url->dir) : NULL; + new_url->file = url->file ? talloc_strdup(new_url, url->file) : NULL; return new_url; }