mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 22:31:28 +02:00
BUG/MAJOR: lua: send function fails and return bad bytes
In some cases the Lua "send" function fails. This is caused by the return of "buffer_replace2()" is not tested. I checked avalaible space in the buffer and I supposed than "buffer_replace2()" took all the data. In some cases, "buffer_replace2()" cannot take the incoming data, it returns the amount of data copied. This patch check the amount of data really copied by "buffer_replace2()" and advance the buffer with taking this value in account.
This commit is contained in:
parent
d1039e5dc5
commit
506e46c352
@ -2091,7 +2091,7 @@ __LJMP static int _hlua_channel_send(lua_State *L)
|
|||||||
if (max > len - l)
|
if (max > len - l)
|
||||||
max = len - l;
|
max = len - l;
|
||||||
|
|
||||||
buffer_replace2(chn->chn->buf, chn->chn->buf->p, chn->chn->buf->p, str+l, max);
|
max = buffer_replace2(chn->chn->buf, chn->chn->buf->p, chn->chn->buf->p, str+l, max);
|
||||||
/* buffer replace considers that the input part is filled.
|
/* buffer replace considers that the input part is filled.
|
||||||
* so, I must forward these new data in the output part.
|
* so, I must forward these new data in the output part.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user