diff options
author | Daniel Stenberg <daniel@haxx.se> | 2003-11-24 07:10:02 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2003-11-24 07:10:02 +0000 |
commit | af9dc9f12808e92f089b2dff80469ce08c0a1274 (patch) | |
tree | cad7ec618fec0f5debcf98012699b25f964f8ee1 | |
parent | 4874aa698676bae0223ef3c2cec41af820e15483 (diff) |
Gaz Iqbal fixed a range string memory leak!
-rw-r--r-- | lib/url.c | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -2852,6 +2852,9 @@ static CURLcode CreateConnection(struct SessionHandle *data, Curl_safefree(old_conn->proxyuser); Curl_safefree(old_conn->proxypasswd); + if(old_conn->bits.rangestringalloc) + free(old_conn->range); + free(old_conn); /* we don't need this anymore */ /* @@ -2860,14 +2863,14 @@ static CURLcode CreateConnection(struct SessionHandle *data, */ conn->resume_from = data->set.set_resume_from; if (conn->resume_from) { - snprintf(resumerange, sizeof(resumerange), "%d-", conn->resume_from); - if (conn->bits.rangestringalloc == TRUE) - free(conn->range); - - /* tell ourselves to fetch this range */ - conn->range = strdup(resumerange); - conn->bits.use_range = TRUE; /* enable range download */ - conn->bits.rangestringalloc = TRUE; /* mark range string allocated */ + snprintf(resumerange, sizeof(resumerange), "%d-", conn->resume_from); + if (conn->bits.rangestringalloc == TRUE) + free(conn->range); + + /* tell ourselves to fetch this range */ + conn->range = strdup(resumerange); + conn->bits.use_range = TRUE; /* enable range download */ + conn->bits.rangestringalloc = TRUE; /* mark range string allocated */ } else if (data->set.set_range) { /* There is a range, but is not a resume, useful for random ftp access */ |