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:
10
src/main.c
10
src/main.c
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user