diff options
author | Daniel Stenberg <daniel@haxx.se> | 2017-06-16 11:30:36 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-06-16 23:38:13 +0200 |
commit | 5385450afd61328e7d24b50eeffc2b1571cd9e2f (patch) | |
tree | abed28837e3bc58605b3963280b9b2aec62815d8 /src/tool_operate.c | |
parent | ce2cc568f822605ae4258ec25b87b59b24c7bd19 (diff) |
curl: prevent binary output spewed to terminal
... unless "--output -" is used. Binary detection is done by simply
checking for a binary zero in early data.
Added test 1425 1426 to verify.
Closes #1512
Diffstat (limited to 'src/tool_operate.c')
-rw-r--r-- | src/tool_operate.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c index 6f1525e8b..b80a77118 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -862,6 +862,9 @@ static CURLcode operate_do(struct GlobalConfig *global, set_binmode(stdout); } + /* explicitly passed to stdout means okaying binary gunk */ + config->terminal_binary_ok = (outfile && !strcmp(outfile, "-")); + if(!config->tcp_nodelay) my_setopt(curl, CURLOPT_TCP_NODELAY, 0L); @@ -1764,7 +1767,10 @@ static CURLcode operate_do(struct GlobalConfig *global, } else #endif - if(result && global->showerror) { + if(config->synthetic_error) { + ; + } + else if(result && global->showerror) { fprintf(global->errors, "curl: (%d) %s\n", result, (errorbuffer[0]) ? errorbuffer : curl_easy_strerror(result)); if(result == CURLE_SSL_CACERT) |