Module: wine Branch: master Commit: e2bd967a856e52251c4ea12cd5413637a8c5d405 URL: http://source.winehq.org/git/wine.git/?a=commit;h=e2bd967a856e52251c4ea12cd5...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Jun 26 15:32:06 2012 +0200
secur32: Handle padding only records in schan_DecryptMessage().
---
dlls/secur32/schannel.c | 15 +++++---------- 1 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c index 253e71a..2339b73 100644 --- a/dlls/secur32/schannel.c +++ b/dlls/secur32/schannel.c @@ -1080,23 +1080,18 @@ static SECURITY_STATUS SEC_ENTRY schan_DecryptMessage(PCtxtHandle context_handle { SIZE_T length = data_size - received; SECURITY_STATUS status = schan_imp_recv(ctx->session, data + received, &length); + if (status == SEC_I_CONTINUE_NEEDED) - { - if (!received) - { - HeapFree(GetProcessHeap(), 0, data); - TRACE("Returning SEC_E_INCOMPLETE_MESSAGE\n"); - return SEC_E_INCOMPLETE_MESSAGE; - } break; - } - else if (status != SEC_E_OK) + + if (status != SEC_E_OK) { HeapFree(GetProcessHeap(), 0, data); ERR("Returning %d\n", status); return status; } - else if (!length) + + if (!length) break;
received += length;