mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-22 14:21:25 +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)
|
||||
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.
|
||||
* so, I must forward these new data in the output part.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user