Schannel: handle SEC_E_INCOMPLETE_DATA in acceptContext
It's not a failure state, we just need more data. It is handled properly in other functions. Change-Id: I9450a78c71a3f4fe9506a7a79de6efa2db08697c Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>bb10
parent
97b9af1519
commit
e5e8f1d67c
|
|
@ -828,12 +828,17 @@ bool QSslSocketBackendPrivate::acceptContext()
|
|||
&expiry // ptsTimeStamp
|
||||
);
|
||||
|
||||
if (status == SEC_E_INCOMPLETE_MESSAGE) {
|
||||
// Need more data
|
||||
return true;
|
||||
}
|
||||
|
||||
if (inBuffers[1].BufferType == SECBUFFER_EXTRA) {
|
||||
// https://docs.microsoft.com/en-us/windows/desktop/secauthn/extra-buffers-returned-by-schannel
|
||||
// inBuffers[1].cbBuffer indicates the amount of bytes _NOT_ processed, the rest need to
|
||||
// be stored.
|
||||
intermediateBuffer = intermediateBuffer.right(int(inBuffers[1].cbBuffer));
|
||||
} else if (status != SEC_E_INCOMPLETE_MESSAGE) {
|
||||
} else { /* No 'extra' data, message not incomplete */
|
||||
intermediateBuffer.clear();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue