[edk2-devel] [PATCH] uefi-sct/SctPkg: Correct issue with memory protection enabled.

Jeff Brasen posted 1 patch 1 week ago
Failed in applying to current master (apply log)
.../UnicodeCollationBBTestFunction.c          | 38 ++++++++++---------
.../UnicodeCollation2BBTestFunction.c         | 38 ++++++++++---------
2 files changed, 42 insertions(+), 34 deletions(-)

[edk2-devel] [PATCH] uefi-sct/SctPkg: Correct issue with memory protection enabled.

Posted by Jeff Brasen 1 week ago
On systems with memory protection enabled the modification of local
function initialization data results in permission issue. Make a copy of
data prior to modification.

Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
---
 .../UnicodeCollationBBTestFunction.c          | 38 ++++++++++---------
 .../UnicodeCollation2BBTestFunction.c         | 38 ++++++++++---------
 2 files changed, 42 insertions(+), 34 deletions(-)

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation/BlackBoxTest/UnicodeCollationBBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation/BlackBoxTest/UnicodeCollationBBTestFunction.c
index 6fa11e6c..e0b4c1d9 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation/BlackBoxTest/UnicodeCollationBBTestFunction.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation/BlackBoxTest/UnicodeCollationBBTestFunction.c
@@ -25,7 +25,7 @@ Abstract:
 --*/

 

 

-#include "SctLib.h"
+#include "SctLib.h"

 #include "UnicodeCollationBBTestMain.h"

 

 

@@ -337,6 +337,7 @@ BBTestStrLwrFunctionAutoTest (
                                         };

 

   CHAR16                               TestDataSav[MAX_SIZE_OF_STRING + 1];

+  CHAR16                               TestDataRw[MAX_SIZE_OF_STRING + 1];

 

 

 

@@ -368,14 +369,15 @@ BBTestStrLwrFunctionAutoTest (
     //

     // Backup current test data

     //

+    CopyUnicodeString (TestDataRw, TestData[Index]);

     CopyUnicodeString (TestDataSav, TestData[Index]);

 

     //

     // For each test data, test the StrLwr functionality.

     //

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrLwr (TestDataSav, TestData[Index])) {

+    if (CheckStrLwr (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -390,15 +392,15 @@ BBTestStrLwrFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

 

 

-    CopyUnicodeString (TestDataSav, TestData[Index]);

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

+    CopyUnicodeString (TestDataSav, TestDataRw);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrEql (TestDataSav, TestData[Index])) {

+    if (CheckStrEql (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -413,7 +415,7 @@ BBTestStrLwrFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

   };

 

@@ -458,6 +460,7 @@ BBTestStrUprFunctionAutoTest (
                                         };

 

   CHAR16                               TestDataSav[MAX_SIZE_OF_STRING + 1];

+  CHAR16                               TestDataRw[MAX_SIZE_OF_STRING + 1];

 

 

 

@@ -490,13 +493,14 @@ BBTestStrUprFunctionAutoTest (
     // Backup current test data

     //

     CopyUnicodeString (TestDataSav, TestData[Index]);

+    CopyUnicodeString (TestDataRw, TestData[Index]);

 

     //

     // For each test data, test the StrUpr functionality.

     //

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrUpr (TestDataSav, TestData[Index])) {

+    if (CheckStrUpr (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -511,14 +515,14 @@ BBTestStrUprFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

 

-    CopyUnicodeString (TestDataSav, TestData[Index]);

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

+    CopyUnicodeString (TestDataSav, TestDataRw);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrEql (TestDataSav, TestData[Index])) {

+    if (CheckStrEql (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -533,7 +537,7 @@ BBTestStrUprFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

   };

 

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation2/BlackBoxTest/UnicodeCollation2BBTestFunction.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation2/BlackBoxTest/UnicodeCollation2BBTestFunction.c
index 653b263a..19ff6764 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation2/BlackBoxTest/UnicodeCollation2BBTestFunction.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/Protocol/UnicodeCollation2/BlackBoxTest/UnicodeCollation2BBTestFunction.c
@@ -25,7 +25,7 @@ Abstract:
 --*/

 

 

-#include "SctLib.h"
+#include "SctLib.h"

 #include "UnicodeCollation2BBTestMain.h"

 

 STATIC CONST STRICOLL_TEST_DATA_FIELD             mStriCollTestData[] ={

@@ -335,6 +335,7 @@ BBTestStrLwrFunctionAutoTest (
                                         };

 

   CHAR16                               TestDataSav[MAX_SIZE_OF_STRING + 1];

+  CHAR16                               TestDataRw[MAX_SIZE_OF_STRING + 1];

 

 

 

@@ -367,13 +368,14 @@ BBTestStrLwrFunctionAutoTest (
     // Backup current test data

     //

     CopyUnicodeString (TestDataSav, TestData[Index]);

+    CopyUnicodeString (TestDataRw, TestData[Index]);

 

     //

     // For each test data, test the StrLwr functionality.

     //

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrLwr (TestDataSav, TestData[Index])) {

+    if (CheckStrLwr (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -388,15 +390,15 @@ BBTestStrLwrFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

 

 

-    CopyUnicodeString (TestDataSav, TestData[Index]);

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

+    CopyUnicodeString (TestDataSav, TestDataRw);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrEql (TestDataSav, TestData[Index])) {

+    if (CheckStrEql (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -411,7 +413,7 @@ BBTestStrLwrFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

   };

 

@@ -456,6 +458,7 @@ BBTestStrUprFunctionAutoTest (
                                         };

 

   CHAR16                               TestDataSav[MAX_SIZE_OF_STRING + 1];

+  CHAR16                               TestDataRw[MAX_SIZE_OF_STRING + 1];

 

 

 

@@ -488,13 +491,14 @@ BBTestStrUprFunctionAutoTest (
     // Backup current test data

     //

     CopyUnicodeString (TestDataSav, TestData[Index]);

+    CopyUnicodeString (TestDataRw, TestData[Index]);

 

     //

     // For each test data, test the StrUpr functionality.

     //

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrUpr (TestDataSav, TestData[Index])) {

+    if (CheckStrUpr (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -509,14 +513,14 @@ BBTestStrUprFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

 

-    CopyUnicodeString (TestDataSav, TestData[Index]);

-    UnicodeCollation->StrLwr (UnicodeCollation, TestData[Index]);

-    UnicodeCollation->StrUpr (UnicodeCollation, TestData[Index]);

+    CopyUnicodeString (TestDataSav, TestDataRw);

+    UnicodeCollation->StrLwr (UnicodeCollation, TestDataRw);

+    UnicodeCollation->StrUpr (UnicodeCollation, TestDataRw);

 

-    if (CheckStrEql (TestDataSav, TestData[Index])) {

+    if (CheckStrEql (TestDataSav, TestDataRw)) {

       AssertionType = EFI_TEST_ASSERTION_PASSED;

     } else {

       AssertionType = EFI_TEST_ASSERTION_FAILED;

@@ -531,7 +535,7 @@ BBTestStrUprFunctionAutoTest (
                    __FILE__,

                    (UINTN)__LINE__,

                    TestDataSav,

-                   TestData[Index]

+                   TestDataRw

                    );

   };

 

-- 
2.25.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#65194): https://edk2.groups.io/g/devel/message/65194
Mute This Topic: https://groups.io/mt/76784632/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-