diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/url.c | 8 | ||||
-rw-r--r-- | lib/urldata.h | 1 |
2 files changed, 8 insertions, 1 deletions
@@ -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; |