mirror of
https://github.com/curl/curl.git
synced 2026-04-15 00:11:40 +03:00
tool_operate: fix memory-leak on failed uploads
Add test case 1673 to do repeated upload failures and verify there is no leak. This proved a previous leak and now it verifies the fix. Reported-by: James Fuller Closes #21062
This commit is contained in:
parent
e8c64a06c5
commit
9820e5dfac
3 changed files with 30 additions and 5 deletions
|
|
@ -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 \
|
||||
\
|
||||
|
|
|
|||
25
tests/data/test1673
Normal file
25
tests/data/test1673
Normal file
|
|
@ -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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue