tool_operate: fix memory-leak on failed uploads
No binary (build failed)
—
(log yok)
| @@ -235,6 +235,10 @@ static struct per_transfer *del_per_transfer(struct per_transfer *per) | |
| else | |
| transfersl = p; | |
| + | curlx_free(per->uploadfile); |
| + | curlx_free(per->outfile); |
| + | curlx_free(per->url); |
| + | curl_easy_cleanup(per->curl); |
| curlx_free(per); | |
| return n; | |
| @@ -777,12 +781,8 @@ static CURLcode post_per_transfer(struct per_transfer *per, | |
| if(per->etag_save.alloc_filename) | |
| tool_safefree(per->etag_save.filename); | |
| - | curl_easy_cleanup(per->curl); |
| if(outs->alloc_filename) | |
| curlx_free(outs->filename); | |
| - | curlx_free(per->url); |
| - | curlx_free(per->outfile); |
| - | curlx_free(per->uploadfile); |
| curl_slist_free_all(per->hdrcbdata.headlist); | |
| per->hdrcbdata.headlist = NULL; | |
| return result; | |
| @@ -224,7 +224,7 @@ test1650 test1651 test1652 test1653 test1654 test1655 test1656 test1657 \ | |
| test1658 test1659 test1660 test1661 test1662 test1663 test1664 test1665 \ | |
| test1666 test1667 test1668 \ | |
| \ | |
| - | test1670 test1671 test1672 \ |
| + | test1670 test1671 test1672 test1673 \ |
| \ | |
| test1680 test1681 test1682 test1683 test1684 \ | |
| \ | |
| @@ -0,0 +1,25 @@ | |
| + | <?xml version="1.0" encoding="US-ASCII"?> |
| + | <testcase> |
| + | <info> |
| + | <keywords> |
| + | HTTP |
| + | upload |
| + | --retry |
| + | </keywords> |
| + | </info> |
| + | |
| + | <client> |
| + | <name> |
| + | HTTP retry upload with missing upload file |
| + | </name> |
| + | <command> |
| + | http://%HOSTIP:%NOLISTENPORT/%TESTNUMBER --retry 5 --retry-all-errors --upload-file AAAAAAAAAAA |
| + | </command> |
| + | </client> |
| + | |
| + | <verify> |
| + | <errorcode> |
| + | 26 |
| + | </errorcode> |
| + | </verify> |
| + | </testcase> |