diff options
author | Jay Satiro <raysatiro@yahoo.com> | 2016-04-29 15:24:10 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2016-04-29 15:24:10 +0200 |
commit | 0dc4d8e42e44224b00a028b467749eede8f08a6e (patch) | |
tree | 125ad6e7f68c0104b7627c2c2fe0e47eff91bc1b /src/tool_operate.c | |
parent | 9dbcab3a0c3f2e22f68081653f8e5f5e596a555b (diff) |
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
Diffstat (limited to 'src/tool_operate.c')
-rw-r--r-- | src/tool_operate.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c index 99996e142..ab29c00b3 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; |