mirror of
https://github.com/curl/curl.git
synced 2025-01-18 14:04:30 +08:00
pingpong.c: avoid a memmove call in function Curl_pp_vsendf
This commit is contained in:
parent
a50210710a
commit
e9e894905c
@ -195,6 +195,10 @@ CURLcode Curl_pp_vsendf(struct pingpong *pp,
|
||||
enum protection_level data_sec = conn->data_prot;
|
||||
#endif
|
||||
|
||||
DEBUGASSERT(pp->sendleft == 0);
|
||||
DEBUGASSERT(pp->sendsize == 0);
|
||||
DEBUGASSERT(pp->sendthis == NULL);
|
||||
|
||||
fmt_crlf = aprintf("%s\r\n", fmt); /* append a trailing CRLF */
|
||||
if(!fmt_crlf)
|
||||
return CURLE_OUT_OF_MEMORY;
|
||||
@ -236,11 +240,10 @@ CURLcode Curl_pp_vsendf(struct pingpong *pp,
|
||||
s, (size_t)bytes_written, conn);
|
||||
|
||||
if(bytes_written != (ssize_t)write_len) {
|
||||
/* the whole chunk was not sent, store the rest of the data */
|
||||
write_len -= bytes_written;
|
||||
memmove(s, s + bytes_written, write_len + 1);
|
||||
/* the whole chunk was not sent, keep it around and adjust sizes */
|
||||
pp->sendthis = s;
|
||||
pp->sendsize = pp->sendleft = write_len;
|
||||
pp->sendsize = write_len;
|
||||
pp->sendleft = write_len - bytes_written;
|
||||
}
|
||||
else {
|
||||
free(s);
|
||||
|
Loading…
Reference in New Issue
Block a user