diff options
Diffstat (limited to 'src/usr/secureboot/base/test/securerommgrtest.H')
-rw-r--r-- | src/usr/secureboot/base/test/securerommgrtest.H | 20 |
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 ) |