Nikolay Sivov : secur32: Simplify input buffer handling for schan_recv() call.
Alexandre Julliard
julliard at winehq.org
Thu Jun 2 16:26:09 CDT 2022
Module: wine
Branch: master
Commit: 1c894ec973dcc5ff2cee32d239e171f61a48e3ef
URL: https://source.winehq.org/git/wine.git/?a=commit;h=1c894ec973dcc5ff2cee32d239e171f61a48e3ef
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue May 31 09:12:05 2022 +0300
secur32: Simplify input buffer handling for schan_recv() call.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/secur32/schannel.c | 6 +++++-
dlls/secur32/schannel_gnutls.c | 2 +-
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index 6a8d667a32f..1f4a1005550 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -1409,6 +1409,7 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle
SIZE_T received = 0;
int idx;
unsigned char *buf_ptr;
+ SecBufferDesc input_desc = { 0 };
TRACE("context_handle %p, message %p, message_seq_no %ld, quality %p\n",
context_handle, message, message_seq_no, quality);
@@ -1446,8 +1447,11 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle
received = data_size;
+ input_desc.cBuffers = 1;
+ input_desc.pBuffers = &message->pBuffers[idx];
+
params.session = ctx->session;
- params.input = message;
+ params.input = &input_desc;
params.input_size = expected_size;
params.buffer = data;
params.length = &received;
diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
index 696790f44dc..82437207982 100644
--- a/dlls/secur32/schannel_gnutls.c
+++ b/dlls/secur32/schannel_gnutls.c
@@ -307,7 +307,7 @@ static int recv_message_get_next_buffer(struct schan_buffers *s)
{
if (s->current_buffer_idx != -1)
return -1;
- return schan_find_sec_buffer_idx(s->desc, 0, SECBUFFER_DATA);
+ return s->desc->cBuffers ? 0 : -1;
}
static char *get_buffer(struct schan_buffers *s, SIZE_T *count)
More information about the wine-cvs
mailing list