summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/smtp.c10
-rw-r--r--lib/smtp.h2
2 files changed, 5 insertions, 7 deletions
diff --git a/lib/smtp.c b/lib/smtp.c
index 2dbd2ea30..d57e62723 100644
--- a/lib/smtp.c
+++ b/lib/smtp.c
@@ -2308,7 +2308,7 @@ static CURLcode smtp_calc_sasl_details(struct connectdata *conn,
return result;
}
-CURLcode Curl_smtp_escape_eob(struct connectdata *conn, ssize_t nread)
+CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread)
{
/* When sending a SMTP payload we must detect CRLF. sequences making sure
they are sent as CRLF.. instead, as a . on the beginning of a line will
@@ -2323,7 +2323,7 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, ssize_t nread)
char *scratch = data->state.scratch;
char *oldscratch = NULL;
- /* Do we need to allocate the scatch buffer? */
+ /* Do we need to allocate a scratch buffer? */
if(!scratch || data->set.crlf) {
oldscratch = scratch;
@@ -2380,10 +2380,8 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, ssize_t nread)
smtp->eob = 0;
}
+ /* Only use the new buffer if we replaced something */
if(si != nread) {
- /* Only use the new buffer if we replaced something */
- nread = si;
-
/* Upload from the new (replaced) buffer instead */
data->req.upload_fromhere = scratch;
@@ -2394,7 +2392,7 @@ CURLcode Curl_smtp_escape_eob(struct connectdata *conn, ssize_t nread)
Curl_safefree(oldscratch);
/* Set the new amount too */
- data->req.upload_present = nread;
+ data->req.upload_present = si;
}
else
Curl_safefree(scratch);
diff --git a/lib/smtp.h b/lib/smtp.h
index db1b1e672..7a95efeaf 100644
--- a/lib/smtp.h
+++ b/lib/smtp.h
@@ -101,6 +101,6 @@ extern const struct Curl_handler Curl_handler_smtps;
#define SMTP_EOB_REPL "\x0d\x0a\x2e\x2e"
#define SMTP_EOB_REPL_LEN 4
-CURLcode Curl_smtp_escape_eob(struct connectdata *conn, ssize_t nread);
+CURLcode Curl_smtp_escape_eob(struct connectdata *conn, const ssize_t nread);
#endif /* HEADER_CURL_SMTP_H */