From: Laszlo Ersek Date: Sat, 31 Mar 2018 14:36:39 +0000 (+0200) Subject: NetworkPkg/TlsDxe: clean up byte order conversion for EfiTlsCipherList X-Git-Tag: edk2-stable201903~1906 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=b1c81b6ec3dc3776ffbe8bcc37b1049afcabd24f NetworkPkg/TlsDxe: clean up byte order conversion for EfiTlsCipherList 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 Cc: Siyuan Fu Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=915 Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek Reviewed-by: Fu Siyuan Reviewed-by: Long Qin Reviewed-by: Jiaxin Wu --- diff --git a/NetworkPkg/TlsDxe/TlsProtocol.c b/NetworkPkg/TlsDxe/TlsProtocol.c index a5f95a0983..298ffdd659 100644 --- a/NetworkPkg/TlsDxe/TlsProtocol.c +++ b/NetworkPkg/TlsDxe/TlsProtocol.c @@ -60,6 +60,7 @@ TlsSetSessionData ( EFI_STATUS Status; TLS_INSTANCE *Instance; UINT16 *CipherId; + CONST EFI_TLS_CIPHER *TlsCipherList; UINTN CipherCount; UINTN Index; @@ -113,9 +114,11 @@ TlsSetSessionData ( goto ON_EXIT; } + TlsCipherList = (CONST EFI_TLS_CIPHER *) Data; CipherCount = DataSize / sizeof (EFI_TLS_CIPHER); for (Index = 0; Index < CipherCount; Index++) { - *(CipherId +Index) = HTONS (*(((UINT16 *) Data) + Index)); + CipherId[Index] = ((TlsCipherList[Index].Data1 << 8) | + TlsCipherList[Index].Data2); } Status = TlsSetCipherList (Instance->TlsConn, CipherId, CipherCount);