aboutsummaryrefslogtreecommitdiff
path: root/src/tool_operate.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2017-06-16 11:30:36 +0200
committerDaniel Stenberg <daniel@haxx.se>2017-06-16 23:38:13 +0200
commit5385450afd61328e7d24b50eeffc2b1571cd9e2f (patch)
treeabed28837e3bc58605b3963280b9b2aec62815d8 /src/tool_operate.c
parentce2cc568f822605ae4258ec25b87b59b24c7bd19 (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.c8
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)