summaryrefslogtreecommitdiffstats
path: root/src/usr/secureboot/base/test/securerommgrtest.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/secureboot/base/test/securerommgrtest.H')
-rw-r--r--src/usr/secureboot/base/test/securerommgrtest.H20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/usr/secureboot/base/test/securerommgrtest.H b/src/usr/secureboot/base/test/securerommgrtest.H
index 8ffa8375d..35e70f707 100644
--- a/src/usr/secureboot/base/test/securerommgrtest.H
+++ b/src/usr/secureboot/base/test/securerommgrtest.H
@@ -380,6 +380,16 @@ class SecureRomManagerTest : public CxxTest::TestSuite
- VFS::VfsRp::getInstance().iv_unprotectedOffset
+ l_vaddr;
memcpy(l_originPage, reinterpret_cast<uint8_t*>(l_pnorVaddr), PAGESIZE);
+ // Open the write permissions to allow the test to temporarily corrupt
+ // the partition.
+ int l_rc = mm_set_permission(reinterpret_cast<void*>(l_pnorVaddr),
+ 2*PAGESIZE,
+ WRITABLE);
+ if(l_rc)
+ {
+ TS_FAIL("mm_set_permission: Cannot set permissions to write");
+ break;
+ }
// Corrupt page
uint8_t l_corruptByte = 0xFF;
@@ -400,6 +410,16 @@ class SecureRomManagerTest : public CxxTest::TestSuite
delete l_errl;
l_errl = nullptr;
+ // Reset to read-only permissions.
+ l_rc = mm_set_permission(reinterpret_cast<void*>(l_pnorVaddr),
+ 2*PAGESIZE,
+ READ_ONLY);
+ if(l_rc)
+ {
+ TS_FAIL("mm_set_permission: Cannot reset permissions to read only");
+ break;
+ }
+
} while(0);
if ( signedFile_pageAddr != nullptr )
OpenPOWER on IntegriCloud