From: Jay Satiro Date: Fri, 29 Apr 2016 13:24:10 +0000 (+0200) Subject: curl -J: make it work even without http:// scheme on URL X-Git-Tag: curl-7_49_0~54 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0dc4d8e;p=thirdparty%2Fcurl.git curl -J: make it work even without http:// scheme on URL It does open up a miniscule risk that one of the other protocols that libcurl could use would send back a Content-Disposition header and then curl would act on it even if not HTTP. A future mitigation for this risk would be to allow the callback to ask libcurl which protocol is being used. Verified with test 1312 Closes #760 --- diff --git a/src/tool_operate.c b/src/tool_operate.c index 99996e142a..ab29c00b31 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1297,7 +1297,10 @@ static CURLcode operate_do(struct GlobalConfig *global, if(config->content_disposition && (urlnode->flags & GETOUT_USEREMOTE) && (checkprefix("http://", this_url) || - checkprefix("https://", this_url))) + checkprefix("https://", this_url) || + (!strstr(this_url, "://") && + (!config->proto_default || + checkprefix("http", config->proto_default))))) hdrcbdata.honor_cd_filename = TRUE; else hdrcbdata.honor_cd_filename = FALSE; diff --git a/tests/data/test1312 b/tests/data/test1312 index 92144015a3..bed492c16d 100644 --- a/tests/data/test1312 +++ b/tests/data/test1312 @@ -40,7 +40,7 @@ HTTP GET with -J, Content-Disposition and ; in filename CURL_TESTDIR=%PWD/log -http://%HOSTIP:%HTTPPORT/1312 -J -O +%HOSTIP:%HTTPPORT/1312 -J -O