From fd950156738ce878c0ba29af99da2ffcac5168e1 Mon Sep 17 00:00:00 2001 From: Jiaxin Wu Date: Tue, 30 Oct 2018 11:30:08 +0800 Subject: NetworkPkg/TlsDxe: Fix failure to process multiple TLS records. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=1290. Current implementation failed to parse the multiple TLS record messages due to the incorrect pointer of TLS record header. This patch is to resolve that problem. Cc: Ye Ting Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Wu Jiaxin Reviewed-by: Fu Siyuan --- NetworkPkg/TlsDxe/TlsImpl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'NetworkPkg') diff --git a/NetworkPkg/TlsDxe/TlsImpl.c b/NetworkPkg/TlsDxe/TlsImpl.c index ea83dbd04f..2d4169b0a5 100644 --- a/NetworkPkg/TlsDxe/TlsImpl.c +++ b/NetworkPkg/TlsDxe/TlsImpl.c @@ -144,7 +144,7 @@ TlsEncryptPacket ( BufferOutSize += ThisMessageSize; BufferInPtr += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize; - TempRecordHeader += ThisMessageSize; + TempRecordHeader = (TLS_RECORD_HEADER *)((UINT8 *)TempRecordHeader + ThisMessageSize); } FreePool (BufferIn); @@ -317,7 +317,7 @@ TlsDecryptPacket ( BufferOutSize += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize; BufferInPtr += TLS_RECORD_HEADER_LENGTH + ThisCipherMessageSize; - TempRecordHeader += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize; + TempRecordHeader = (TLS_RECORD_HEADER *)((UINT8 *)TempRecordHeader + TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize); } FreePool (BufferIn); -- cgit v1.2.3