From a6fcd8a32f3b1c5d80e524f8b2c1de32e6ecdb2b Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Sun, 31 May 2020 23:09:59 +0200 Subject: [PATCH] tool_getparam: -i is not OK if -J is used Reported-by: sn on hackerone Bug: https://curl.haxx.se/docs/CVE-2020-8177.html Upstream-commit: 8236aba58542c5f89f1d41ca09d84579efb05e22 Signed-off-by: Kamil Dudka --- src/tool_cb_hdr.c | 13 ++++--------- src/tool_getparam.c | 5 +++++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/tool_cb_hdr.c b/src/tool_cb_hdr.c index 3b10238..b80707f 100644 --- a/src/tool_cb_hdr.c +++ b/src/tool_cb_hdr.c @@ -132,16 +132,11 @@ size_t tool_header_cb(char *ptr, size_t size, size_t nmemb, void *userdata) filename = parse_filename(p, len); if(filename) { if(outs->stream) { - /* already opened and possibly written to */ - if(outs->fopened) - fclose(outs->stream); - outs->stream = NULL; - - /* rename the initial file name to the new file name */ - rename(outs->filename, filename); - if(outs->alloc_filename) - free(outs->filename); + /* indication of problem, get out! */ + free(filename); + return failure; } + outs->is_cd_filename = TRUE; outs->s_isreg = TRUE; outs->fopened = FALSE; diff --git a/src/tool_getparam.c b/src/tool_getparam.c index 764caa2..c5c7429 100644 --- a/src/tool_getparam.c +++ b/src/tool_getparam.c @@ -1745,6 +1745,11 @@ ParameterError getparameter(const char *flag, /* f or -long-flag */ } break; case 'i': + if(config->content_disposition) { + warnf(global, + "--include and --remote-header-name cannot be combined.\n"); + return PARAM_BAD_USE; + } config->show_headers = toggle; /* show the headers as well in the general output stream */ break; -- 2.21.3