aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/url.c8
-rw-r--r--lib/urldata.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/url.c b/lib/url.c
index 582d03da0..3865d201e 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -183,6 +183,11 @@ void static urlfree(struct UrlData *data, bool totally)
switch off that knowledge again... */
data->bits.httpproxy=FALSE;
}
+
+ if(data->bits.rangestringalloc) {
+ free(data->range);
+ data->range=NULL;
+ }
if(data->ptr_proxyuserpwd) {
free(data->ptr_proxyuserpwd);
@@ -906,7 +911,8 @@ CURLcode curl_connect(CURL *curl, CURLconnect **in_connect)
if(!data->bits.set_range) {
/* if it already was in use, we just skip this */
sprintf(resumerange, "%d-", data->resume_from);
- data->range=resumerange; /* tell ourselves to fetch this range */
+ data->range=strdup(resumerange); /* tell ourselves to fetch this range */
+ data->bits.rangestringalloc = TRUE; /* mark as allocated */
data->bits.set_range = 1; /* switch on range usage */
}
}
diff --git a/lib/urldata.h b/lib/urldata.h
index 241bfc268..87e49a840 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -307,6 +307,7 @@ struct Configbits {
bool proxystringalloc; /* the http proxy string is malloc()'ed */
bool set_port;
bool set_range;
+ bool rangestringalloc; /* the range string is malloc()'ed */
bool upload;
bool use_netrc;
bool user_passwd;