[PATCH] Fill a SECBUFFER_MISSING buffer if the message is not complete
Mikko Rasa
tdb at tdb.fi
Tue Sep 7 14:01:22 CDT 2010
---
dlls/secur32/schannel.c | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c
index 78757ac..199c7ce 100644
--- a/dlls/secur32/schannel.c
+++ b/dlls/secur32/schannel.c
@@ -1244,6 +1244,15 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle
if(buffer->cbBuffer < expected_size)
{
TRACE("Expected %u bytes, but buffer only contains %u bytes\n", expected_size, buffer->cbBuffer);
+ buffer->BufferType = SECBUFFER_MISSING;
+ buffer->cbBuffer = expected_size - buffer->cbBuffer;
+
+ /* This is a bit weird, but windows does it too */
+ idx = schan_find_sec_buffer_idx(message, 0, SECBUFFER_EMPTY);
+ buffer = &message->pBuffers[idx];
+ buffer->BufferType = SECBUFFER_MISSING;
+ buffer->cbBuffer = expected_size - buffer->cbBuffer;
+
TRACE("Returning SEC_E_INCOMPLETE_MESSAGE\n");
return SEC_E_INCOMPLETE_MESSAGE;
}
--
1.7.1
More information about the wine-patches
mailing list