]> git.proxmox.com Git - mirror_edk2.git/commitdiff
NetworkPkg/TlsDxe: Fix failure to process multiple TLS records.
authorJiaxin Wu <Jiaxin.wu@intel.com>
Tue, 30 Oct 2018 03:30:08 +0000 (11:30 +0800)
committerJiaxin Wu <Jiaxin.wu@intel.com>
Thu, 1 Nov 2018 01:37:41 +0000 (09:37 +0800)
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 <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
NetworkPkg/TlsDxe/TlsImpl.c

index ea83dbd04f539820d2a8a6e193a02c5dab654cf1..2d4169b0a5d0763d232fd2fadd43bade53be3868 100644 (file)
@@ -144,7 +144,7 @@ TlsEncryptPacket (
     BufferOutSize += ThisMessageSize;\r
 \r
     BufferInPtr += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize;\r
-    TempRecordHeader += ThisMessageSize;\r
+    TempRecordHeader = (TLS_RECORD_HEADER *)((UINT8 *)TempRecordHeader + ThisMessageSize);\r
   }\r
 \r
   FreePool (BufferIn);\r
@@ -317,7 +317,7 @@ TlsDecryptPacket (
     BufferOutSize += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize;\r
 \r
     BufferInPtr += TLS_RECORD_HEADER_LENGTH + ThisCipherMessageSize;\r
-    TempRecordHeader += TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize;\r
+    TempRecordHeader = (TLS_RECORD_HEADER *)((UINT8 *)TempRecordHeader + TLS_RECORD_HEADER_LENGTH + ThisPlainMessageSize);\r
   }\r
 \r
   FreePool (BufferIn);\r