Module: wine Branch: master Commit: 76b20aa032b3ad2e99b47f270732332d89880308 URL: https://gitlab.winehq.org/wine/wine/-/commit/76b20aa032b3ad2e99b47f270732332...
Author: Paul Gofman pgofman@codeweavers.com Date: Tue Jul 2 13:30:13 2024 -0600
winhttp: Construct raw header from the parse result in read_reply().
---
dlls/winhttp/request.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c index 207f1ec5c61..2b8fa168947 100644 --- a/dlls/winhttp/request.c +++ b/dlls/winhttp/request.c @@ -2697,9 +2697,29 @@ static DWORD read_reply( struct request *request ) free_header( header ); break; } + + lenW = wcslen( header->field ); + assert( len - offset >= lenW + 1 ); + memcpy( raw_headers + offset, header->field, lenW * sizeof(WCHAR) ); + offset += lenW; + + lenW = 2; + assert( len - offset >= lenW + 1 ); + memcpy( raw_headers + offset, L": ", lenW * sizeof(WCHAR) ); + offset += lenW; + + lenW = wcslen( header->value ); + assert( len - offset >= lenW + 1 ); + memcpy( raw_headers + offset, header->value, lenW * sizeof(WCHAR) ); + offset += lenW; + + lenW = crlf_len; + assert( len - offset >= lenW + 1 ); + memcpy( raw_headers + offset, L"\r\n", lenW * sizeof(WCHAR) ); + offset += lenW; + + raw_headers[offset] = 0; free_header( header ); - memcpy( raw_headers + offset + buflen - 1, L"\r\n", sizeof(L"\r\n") ); - offset += buflen + crlf_len - 1; }
TRACE("raw headers: %s\n", debugstr_w(raw_headers));