mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
sendf: fix CRLF conversion of input
When CRLF line end conversion was enabled (--crlf), input after the last newline in the upload buffer was not sent, if the buffer contained a newline. Reported-by: vuonganh1993 on github Fixes #14165 Closes #14169
This commit is contained in:
parent
6f0a8bd43c
commit
9e5b11c659
@ -1025,6 +1025,12 @@ static CURLcode cr_lc_read(struct Curl_easy *data,
|
||||
* the content length after having started the request... */
|
||||
}
|
||||
}
|
||||
|
||||
if(start < i) { /* leftover */
|
||||
result = Curl_bufq_cwrite(&ctx->buf, buf + start, i - start, &n);
|
||||
if(result)
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
DEBUGASSERT(!Curl_bufq_is_empty(&ctx->buf));
|
||||
|
@ -32,6 +32,7 @@ converted
|
||||
with
|
||||
the
|
||||
--crlf option
|
||||
%repeat[650 x 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789%0a]%
|
||||
</file>
|
||||
<command>
|
||||
smtp://%HOSTIP:%SMTPPORT/%TESTNUMBER --mail-rcpt recipient@example.com --mail-from sender@example.com -T %LOGDIR/upload%TESTNUMBER --crlf
|
||||
@ -60,6 +61,7 @@ converted
|
||||
with
|
||||
the
|
||||
--crlf option
|
||||
%repeat[650 x 0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789
%0a]%
|
||||
.
|
||||
</upload>
|
||||
</verify>
|
||||
|
@ -1460,6 +1460,9 @@ sub singletest_check {
|
||||
# cut off the final newline from the final line of the upload data
|
||||
chomp($upload[-1]);
|
||||
}
|
||||
for my $line (@upload) {
|
||||
subbase64(\$line);
|
||||
}
|
||||
|
||||
# verify uploaded data
|
||||
my @out = loadarray("$logdir/upload.$testnum");
|
||||
|
@ -127,6 +127,7 @@ sub subbase64 {
|
||||
# decode %NN characters
|
||||
my ($d, $n) = ($2, $1);
|
||||
$d =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
|
||||
$n =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg;
|
||||
my $all = $d x $n;
|
||||
$$thing =~ s/%%REPEAT%%/$all/;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user