Module: wine Branch: master Commit: 67252dec2234d4ab380ef3b727b9503ae1f4d3d6 URL: https://source.winehq.org/git/wine.git/?a=commit;h=67252dec2234d4ab380ef3b72...
Author: Paul Gofman pgofman@codeweavers.com Date: Thu Jan 27 02:03:05 2022 +0300
winhttp: Append mask to output frame even if buffer length is zero.
Signed-off-by: Paul Gofman pgofman@codeweavers.com Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/winhttp/request.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-)
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c index cbfe2b21bd0..0a5362d3c16 100644 --- a/dlls/winhttp/request.c +++ b/dlls/winhttp/request.c @@ -3174,8 +3174,7 @@ static DWORD send_frame( struct socket *socket, enum socket_opcode opcode, USHOR offset += 8; }
- buffer_size = len + offset; - if (len) buffer_size += 4; + buffer_size = len + offset + 4; assert( buffer_size - len < MAX_FRAME_BUFFER_SIZE ); if (ovr && buffer_size > MAX_FRAME_BUFFER_SIZE) return WSAEWOULDBLOCK; if (buffer_size > socket->send_frame_buffer_size && socket->send_frame_buffer_size < MAX_FRAME_BUFFER_SIZE) @@ -3196,13 +3195,11 @@ static DWORD send_frame( struct socket *socket, enum socket_opcode opcode, USHOR
memcpy(ptr, hdr, offset); ptr += offset; - if (len) - { - mask = &hdr[offset]; - RtlGenRandom( mask, 4 ); - memcpy( ptr, mask, 4 ); - ptr += 4; - } + + mask = &hdr[offset]; + RtlGenRandom( mask, 4 ); + memcpy( ptr, mask, 4 ); + ptr += 4;
if (opcode == SOCKET_OPCODE_CLOSE) /* prepend status code */ {