mirror of
https://github.com/curl/curl.git
synced 2026-06-26 00:55:38 +03:00
sendf: accept zero-length data in Curl_client_write()
Historically, Curl_client_write() used a length value of 0 as a marker
for a null-terminated data string. This feature has been removed in
commit f4b85d2. To detect leftover uses of the feature, a DEBUGASSERT
statement rejecting a length with value 0 was introduced, effectively
precluding use of this function with zero-length data.
The current commit removes the DEBUGASSERT and makes the function to
return immediately if length is 0.
A direct effect is to fix trying to output a zero-length distinguished
name in openldap.
Another DEBUGASSERT statement is also rephrased for better readability.
Closes #7898
This commit is contained in:
parent
8d9af7062b
commit
fa84ce347f
1 changed files with 5 additions and 3 deletions
|
|
@ -608,7 +608,7 @@ static CURLcode chop_write(struct Curl_easy *data,
|
|||
/* Curl_client_write() sends data to the write callback(s)
|
||||
|
||||
The bit pattern defines to what "streams" to write to. Body and/or header.
|
||||
The defines are in sendf.h of course. "len" is not allowed to be 0.
|
||||
The defines are in sendf.h of course.
|
||||
|
||||
If CURL_DO_LINEEND_CONV is enabled, data is converted IN PLACE to the
|
||||
local character encoding. This is a problem and should be changed in
|
||||
|
|
@ -621,8 +621,10 @@ CURLcode Curl_client_write(struct Curl_easy *data,
|
|||
{
|
||||
struct connectdata *conn = data->conn;
|
||||
|
||||
DEBUGASSERT(len);
|
||||
DEBUGASSERT(type <= 3);
|
||||
DEBUGASSERT(!(type & ~CLIENTWRITE_BOTH));
|
||||
|
||||
if(!len)
|
||||
return CURLE_OK;
|
||||
|
||||
/* FTP data may need conversion. */
|
||||
if((type & CLIENTWRITE_BODY) &&
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue