mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 07:38:49 -05:00
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:
parent
d49edc8e09
commit
6f8fe67ace
7
CHANGES
7
CHANGES
@ -9,6 +9,13 @@
|
||||
|
||||
|
||||
Daniel (27 October 2005)
|
||||
- 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.
|
||||
|
||||
- Jaz Fresh pointed out that if you used "-r [number]" as was wrongly described
|
||||
in the man page, curl would send an invalid HTTP Range: header. The correct
|
||||
way would be to use "-r [number]-" or even "-r -[number]". Starting now,
|
||||
|
@ -15,6 +15,7 @@ This release includes the following changes:
|
||||
|
||||
This release includes the following bugfixes:
|
||||
|
||||
o Windows uploads from stdin using curl can now contain ctrl-Z bytes
|
||||
o -r [num] would produce an invalid HTTP Range: header
|
||||
o multi interface with multi IP hosts could leak socket descriptors
|
||||
o the GnuTLS code didn't handle rehandshakes
|
||||
@ -34,6 +35,6 @@ This release would not have looked like this without help, code, reports and
|
||||
advice from friends like these:
|
||||
|
||||
Dave Dribin, Bradford Bruce, Temprimus, Ofer, Dima Barsky, Amol Pattekar, Jaz
|
||||
Fresh
|
||||
Fresh, tommink[at]post.pl, Gisle Vanem
|
||||
|
||||
Thanks! (and sorry if I forgot to mention someone)
|
||||
|
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user