tommink[at]post.pl reported in bug report #1337723

(http://curl.haxx.se/bug/view.cgi?id=1337723) that curl could not upload
binary data from stdin on Windows if the data contained control-Z (hex 1a)
since that is treated as end-of-file when read in text mode. Gisle Vanem
pointed out the fix, and I made both -T and --data-binary take advantage of
it.
This commit is contained in:
Daniel Stenberg
2005-10-27 21:02:01 +00:00
parent d49edc8e09
commit 6f8fe67ace
3 changed files with 18 additions and 2 deletions

View File

@@ -1797,8 +1797,13 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
nextarg++; /* pass the @ */
if(curlx_strequal("-", nextarg))
if(curlx_strequal("-", nextarg)) {
file = stdin;
#ifdef O_BINARY
if(subletter == 'b') /* forced binary */
setmode(fileno(stdin), O_BINARY);
#endif
}
else {
file = fopen(nextarg, "rb");
if(!file)
@@ -3620,6 +3625,9 @@ operate(struct Configurable *config, int argc, char *argv[])
}
else if(uploadfile && curlx_strequal(uploadfile, "-")) {
#ifdef O_BINARY
setmode(fileno(stdin), O_BINARY);
#endif
infd = stdin;
}