From f4c0590b1cd0e8fde56f9ebe460e20846182c91e Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 17 Mar 2026 13:39:28 +0100 Subject: [PATCH] tool_ipfs: accept IPFS gateway URL without set port number Follow-up to: 56129718b80b5bd5a55 Test 1851 added to verify Pointed out by Codex Security Closes #20957 --- src/tool_ipfs.c | 3 ++- tests/data/Makefile.am | 2 +- tests/data/test1851 | 55 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 tests/data/test1851 diff --git a/src/tool_ipfs.c b/src/tool_ipfs.c index ed45b08779..a510a983b2 100644 --- a/src/tool_ipfs.c +++ b/src/tool_ipfs.c @@ -166,7 +166,8 @@ CURLcode ipfs_url_rewrite(CURLU *uh, const char *protocol, char **url, /* get gateway parts */ if(curl_url_get(gatewayurl, CURLUPART_HOST, &gwhost, CURLU_URLDECODE) || curl_url_get(gatewayurl, CURLUPART_SCHEME, &gwscheme, CURLU_URLDECODE) || - curl_url_get(gatewayurl, CURLUPART_PORT, &gwport, CURLU_URLDECODE) || + curl_url_get(gatewayurl, CURLUPART_PORT, &gwport, + CURLU_URLDECODE | CURLU_DEFAULT_PORT) || curl_url_get(gatewayurl, CURLUPART_PATH, &gwpath, CURLU_URLDECODE)) goto clean; diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 3b8e6401c4..81fcbdc6ff 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -230,7 +230,7 @@ test1680 test1681 test1682 test1683 \ test1700 test1701 test1702 test1703 test1704 test1705 test1706 test1707 \ test1708 test1709 test1710 test1711 test1712 test1713 \ \ -test1800 test1801 test1802 test1847 test1848 test1849 test1850 \ +test1800 test1801 test1802 test1847 test1848 test1849 test1850 test1851 \ \ test1900 test1901 test1902 test1903 test1904 test1905 test1906 test1907 \ test1908 test1909 test1910 test1911 test1912 test1913 test1914 test1915 \ diff --git a/tests/data/test1851 b/tests/data/test1851 new file mode 100644 index 0000000000..dd2e05be89 --- /dev/null +++ b/tests/data/test1851 @@ -0,0 +1,55 @@ + + + + +IPFS + + + +# Server-side + + +HTTP/1.1 200 OK +Date: Tue, 09 Nov 2010 14:49:00 GMT +Server: test-server/fake +Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT +ETag: "21025-dc7-39462498" +Accept-Ranges: bytes +Content-Length: 21 +Connection: close +Content-Type: text/plain +Funny-head: yesyes + +Hello curl from IPFS + + + +# Client-side + + +ipfs +proxy + + +http + + +IPFS gateway using default port number + + +--ipfs-gateway http://somewhere.anywhere "ipfs://r4nd0m" -x http://%HOSTIP:%HTTPPORT + + + +# Verify data after the test has been "shot" + + +GET http://somewhere.anywhere/ipfs/r4nd0m HTTP/1.1 +Host: somewhere.anywhere +User-Agent: curl/%VERSION +Accept: */* +Proxy-Connection: Keep-Alive + + + +