From d5ec9fa75f6c369975b6022128a8ac690109bc48 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Mon, 26 Aug 2019 23:31:17 -0500 Subject: [PATCH] http.sys: Fill out the raw URL. Signed-off-by: Zebediah Figura Signed-off-by: Alexandre Julliard --- dlls/http.sys/http.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dlls/http.sys/http.c b/dlls/http.sys/http.c index 7690867fcd6..1c4dd12d69c 100644 --- a/dlls/http.sys/http.c +++ b/dlls/http.sys/http.c @@ -279,6 +279,7 @@ static NTSTATUS complete_irp(struct connection *conn, IRP *irp) if (conn->unk_verb_len) irp_size += conn->unk_verb_len + 1; + irp_size += conn->url_len + 1; TRACE("Need %u bytes, have %u.\n", irp_size, output_len); irp->IoStatus.Information = irp_size; @@ -312,6 +313,7 @@ static NTSTATUS complete_irp(struct connection *conn, IRP *irp) req->Version = conn->version; req->Verb = conn->verb; req->UnknownVerbLength = conn->unk_verb_len; + req->RawUrlLength = conn->url_len; if (conn->unk_verb_len) { @@ -321,6 +323,11 @@ static NTSTATUS complete_irp(struct connection *conn, IRP *irp) buffer[offset++] = 0; } + req->pRawUrl = params.addr + offset; + memcpy(buffer + offset, conn->url, conn->url_len); + offset += conn->url_len; + buffer[offset++] = 0; + req->BytesReceived = conn->req_len; } else @@ -335,6 +342,7 @@ static NTSTATUS complete_irp(struct connection *conn, IRP *irp) req->Version = conn->version; req->Verb = conn->verb; req->UnknownVerbLength = conn->unk_verb_len; + req->RawUrlLength = conn->url_len; if (conn->unk_verb_len) { @@ -344,6 +352,11 @@ static NTSTATUS complete_irp(struct connection *conn, IRP *irp) buffer[offset++] = 0; } + req->pRawUrl = params.addr + offset; + memcpy(buffer + offset, conn->url, conn->url_len); + offset += conn->url_len; + buffer[offset++] = 0; + req->BytesReceived = conn->req_len; }