← Commit list

9820e5dfac

Daniel Stenberg
Daniel Stenberg
2026-03-22
SUCCESS Duration: 260s

Subject

tool_operate: fix memory-leak on failed uploads

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

src/tool_operate.c+4 -4
@@ -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;
tests/data/Makefile.am+1 -1
@@ -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 \
\
tests/data/test1673+25 -0
@@ -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>