浏览代码

Fix small bugs in SChannelConnection::decrypt

And it seems like I can connect to google now
Bart van Strien 6 年之前
父节点
当前提交
d00b6b7891
共有 1 个文件被更改,包括 7 次插入0 次删除
  1. 7 0
      src/windows/SChannelConnection.cpp

+ 7 - 0
src/windows/SChannelConnection.cpp

@@ -255,13 +255,20 @@ size_t SChannelConnection::read(char *buffer, size_t size)
 
 size_t SChannelConnection::decrypt(char *buffer, size_t size, bool recurse)
 {
+	if (size == 0)
+		return 0;
+
 	SecBuffer secBuffers[4];
 	secBuffers[0].cbBuffer = size;
 	secBuffers[0].BufferType = SECBUFFER_DATA;
 	secBuffers[0].pvBuffer = buffer;
 
 	for (size_t i = 1; i < 4; ++i)
+	{
 		secBuffers[i].BufferType = SECBUFFER_EMPTY;
+		secBuffers[i].pvBuffer = nullptr;
+		secBuffers[i].cbBuffer = 0;
+	}
 
 	SecBufferDesc secBufferDesc;
 	secBufferDesc.ulVersion = SECBUFFER_VERSION;