[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: [5/6] secur32: Implement schannel EncryptMessage().
From: "Henri Verbeet" <hverbeet () gmail ! com>
Date: 2008-12-29 11:34:25
Message-ID: d658b69e0812290334p4034fdd4lbad1e3f8935181c3 () mail ! gmail ! com
[Download RAW message or body]
2008/12/29 Rob Shearman <robertshearman@gmail.com>:
> 2008/12/28 Henri Verbeet <hverbeet@gmail.com>:
>> + while (received < data_size)
>> + {
>> + ret = pgnutls_record_recv(ctx->session, data + received, data_size - received);
>> + if (ret < 0)
>> + {
>> + if (ret == GNUTLS_E_AGAIN)
>> + {
>> + if (!received)
>
> Shouldn't this be "if (received == data_size)"?
>
>> + {
>> + pgnutls_perror(ret);
>> + HeapFree(GetProcessHeap(), 0, data);
>> + TRACE("Returning SEC_E_INCOMPLETE_MESSAGE\n");
>> + return SEC_E_INCOMPLETE_MESSAGE;
>> + }
>> + break;
>> + }
>> + else
>> + {
>> + pgnutls_perror(ret);
>> + HeapFree(GetProcessHeap(), 0, data);
>> + ERR("Returning SEC_E_INTERNAL_ERROR\n");
>> + return SEC_E_INTERNAL_ERROR;
>> + }
>> + }
>> + received += ret;
>> + }
>
The idea was to only return SEC_E_INCOMPLETE_MESSAGE if there's less
than one complete TLS record in the buffer, it shouldn't be a problem
to have eg. one complete message plus some bytes from the next one,
setting the buffer size further down is supposed to take care of that.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic