[edk2-devel] [PATCH] NetworkPkg: Fix incorrect unicode string of the AKM/Cipher Suite

Heng Luo posted 1 patch 2 years, 2 months ago
Failed in applying to current master (apply log)
NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c | 16 ++++++++++++----
1 file changed, 12 insertions(+), 4 deletions(-)
[edk2-devel] [PATCH] NetworkPkg: Fix incorrect unicode string of the AKM/Cipher Suite
Posted by Heng Luo 2 years, 2 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3813

The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
The first char is the AKM/Cipher Suite number, the second char is ' ',
the third char is '\0'.

Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Cc: Wu Jiaxin <jiaxin.wu@intel.com>
Signed-off-by: Heng Luo <heng.luo@intel.com>
---
 NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
index b49825bcb7..7cb2bfc281 100644
--- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
+++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
@@ -280,12 +280,16 @@ WifiMgrGetStrAKMList (
     //
     // Current AKM Suite is between 1-9
     //
-    AKMListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * AKMSuiteCount * 2);
+    AKMListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * (AKMSuiteCount * 2 + 1));
     if (AKMListDisplay != NULL) {
       for (Index = 0; Index < AKMSuiteCount; Index++) {
+        //
+        // The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
+        // The first char is the AKM Suite number, the second char is ' ', the third char is '\0'.
+        //
         UnicodeSPrint (
           AKMListDisplay + (Index * 2),
-          sizeof (CHAR16) * 2,
+          sizeof (CHAR16) * 3,
           L"%d ",
           Profile->Network.AKMSuite->AKMSuiteList[Index].SuiteType
           );
@@ -333,12 +337,16 @@ WifiMgrGetStrCipherList (
     //
     // Current Cipher Suite is between 1-9
     //
-    CipherListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * CipherSuiteCount * 2);
+    CipherListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * (CipherSuiteCount * 2 + 1));
     if (CipherListDisplay != NULL) {
       for (Index = 0; Index < CipherSuiteCount; Index++) {
+        //
+        // The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
+        // The first char is the Cipher Suite number, the second char is ' ', the third char is '\0'.
+        //
         UnicodeSPrint (
           CipherListDisplay + (Index * 2),
-          sizeof (CHAR16) * 2,
+          sizeof (CHAR16) * 3,
           L"%d ",
           Profile->Network.CipherSuite->CipherSuiteList[Index].SuiteType
           );
-- 
2.31.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86076): https://edk2.groups.io/g/devel/message/86076
Mute This Topic: https://groups.io/mt/88690749/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] NetworkPkg: Fix incorrect unicode string of the AKM/Cipher Suite
Posted by Maciej Rabeda 2 years, 1 month ago
Hi Heng,

Thanks for the patch.
Reviewed-by: Maciej Rabeda <maciej.rabeda@linux.intel.com>

W dniu 26-Jan-22 o 06:12, Heng Luo pisze:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3813
>
> The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
> The first char is the AKM/Cipher Suite number, the second char is ' ',
> the third char is '\0'.
>
> Cc: Maciej Rabeda <maciej.rabeda@linux.intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> Cc: Wu Jiaxin <jiaxin.wu@intel.com>
> Signed-off-by: Heng Luo <heng.luo@intel.com>
> ---
>   NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c | 16 ++++++++++++----
>   1 file changed, 12 insertions(+), 4 deletions(-)
>
> diff --git a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
> index b49825bcb7..7cb2bfc281 100644
> --- a/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
> +++ b/NetworkPkg/WifiConnectionManagerDxe/WifiConnectionMgrHiiConfigAccess.c
> @@ -280,12 +280,16 @@ WifiMgrGetStrAKMList (
>       //
>       // Current AKM Suite is between 1-9
>       //
> -    AKMListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * AKMSuiteCount * 2);
> +    AKMListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * (AKMSuiteCount * 2 + 1));
>       if (AKMListDisplay != NULL) {
>         for (Index = 0; Index < AKMSuiteCount; Index++) {
> +        //
> +        // The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
> +        // The first char is the AKM Suite number, the second char is ' ', the third char is '\0'.
> +        //
>           UnicodeSPrint (
>             AKMListDisplay + (Index * 2),
> -          sizeof (CHAR16) * 2,
> +          sizeof (CHAR16) * 3,
>             L"%d ",
>             Profile->Network.AKMSuite->AKMSuiteList[Index].SuiteType
>             );
> @@ -333,12 +337,16 @@ WifiMgrGetStrCipherList (
>       //
>       // Current Cipher Suite is between 1-9
>       //
> -    CipherListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * CipherSuiteCount * 2);
> +    CipherListDisplay = (CHAR16 *)AllocateZeroPool (sizeof (CHAR16) * (CipherSuiteCount * 2 + 1));
>       if (CipherListDisplay != NULL) {
>         for (Index = 0; Index < CipherSuiteCount; Index++) {
> +        //
> +        // The size of buffer should be 3 CHAR16 for Null-terminated Unicode string.
> +        // The first char is the Cipher Suite number, the second char is ' ', the third char is '\0'.
> +        //
>           UnicodeSPrint (
>             CipherListDisplay + (Index * 2),
> -          sizeof (CHAR16) * 2,
> +          sizeof (CHAR16) * 3,
>             L"%d ",
>             Profile->Network.CipherSuite->CipherSuiteList[Index].SuiteType
>             );



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#86828): https://edk2.groups.io/g/devel/message/86828
Mute This Topic: https://groups.io/mt/88690749/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-