NetworkPkg/TlsDxe: clean up byte order conversion for EfiTlsCipherList
authorLaszlo Ersek <lersek@redhat.com>
Sat, 31 Mar 2018 14:36:39 +0000 (16:36 +0200)
committerLaszlo Ersek <lersek@redhat.com>
Fri, 13 Apr 2018 12:06:12 +0000 (14:06 +0200)
Fix the following style issues:

- "Data" is accessed through a pointer to UINT16 rather than to a pointer
  to EFI_TLS_CIPHER. While technically correct, UINT16 is harder to
  interpret against the UEFI spec.

- Array subscripting is written with weird *(Pointer + Offset)
  expressions, rather than with Pointer[Offset].

- The byte order is converted with HTONS(), while it should be NTOHS().
  Either way, use the Data1 and Data2 fields of EFI_TLS_CIPHER instead.

Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Cc: Siyuan Fu <siyuan.fu@intel.com>
Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=915
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Fu Siyuan <siyuan.fu@intel.com>
Reviewed-by: Long Qin <qin.long@intel.com>
Reviewed-by: Jiaxin Wu <jiaxin.wu@intel.com>
NetworkPkg/TlsDxe/TlsProtocol.c

index a5f95a0..298ffdd 100644 (file)
@@ -60,6 +60,7 @@ TlsSetSessionData (
   EFI_STATUS                Status;\r
   TLS_INSTANCE              *Instance;\r
   UINT16                    *CipherId;\r
+  CONST EFI_TLS_CIPHER      *TlsCipherList;\r
   UINTN                     CipherCount;\r
   UINTN                     Index;\r
 \r
@@ -113,9 +114,11 @@ TlsSetSessionData (
       goto ON_EXIT;\r
     }\r
 \r
+    TlsCipherList = (CONST EFI_TLS_CIPHER *) Data;\r
     CipherCount = DataSize / sizeof (EFI_TLS_CIPHER);\r
     for (Index = 0; Index < CipherCount; Index++) {\r
-      *(CipherId +Index) = HTONS (*(((UINT16 *) Data) + Index));\r
+      CipherId[Index] = ((TlsCipherList[Index].Data1 << 8) |\r
+                         TlsCipherList[Index].Data2);\r
     }\r
 \r
     Status = TlsSetCipherList (Instance->TlsConn, CipherId, CipherCount);\r