Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UefiTestingPkg: DxePagingAuditTestApp Fix Inaccessible Memory Test #528

Merged
merged 1 commit into from
Jul 23, 2024

Conversation

os-d
Copy link
Contributor

@os-d os-d commented Jul 23, 2024

Description

Security.Misc.MemoryOutsideEfiMemoryMapIsInaccessible was failing because it was not checking the return status of
ValidateRegionAttributes, which could return EFI_NO_MAPPING to indicate a given range was not in the page table. There are two independent criteria that can be satisfied to indicate that a region is inaccessible: it is marked EFI_MEMORY_RP or it is not mapped in the page table. This test was only checking the first case and not the second case. With this update it now correctly checks both cases.

  • Impacts functionality?
    • Functionality - Does the change ultimately impact how firmware functions?
    • Examples: Add a new library, publish a new PPI, update an algorithm, ...
  • Impacts security?
    • Security - Does the change have a direct security impact on an application,
      flow, or firmware?
    • Examples: Crypto algorithm change, buffer overflow fix, parameter
      validation improvement, ...
  • Breaking change?
    • Breaking change - Will anyone consuming this change experience a break
      in build or boot behavior?
    • Examples: Add a new library class, move a module to a different repo, call
      a function in a new library class in a pre-existing module, ...
  • Includes tests?
    • Tests - Does the change include any explicit test code?
    • Examples: Unit tests, integration tests, robot tests, ...
  • Includes documentation?
    • Documentation - Does the change contain explicit documentation additions
      outside direct code modifications (and comments)?
    • Examples: Update readme file, add feature readme file, link to documentation
      on an a separate Web page, ...

How This Was Tested

Tested on Q35 and saw that the formerly failing test is now passing.

Integration Instructions

N/A.

Security.Misc.MemoryOutsideEfiMemoryMapIsInaccessible was failing
because it was not checking the return status of
ValidateRegionAttributes, which could return EFI_NO_MAPPING to
indicate a given range was not in the page table. There are two
independent criteria that can be satisfied to indicate that a region
is inaccessible: it is marked EFI_MEMORY_RP or it is not mapped in
the page table. This test was only checking the first case and not
the second case. With this update it now correctly checks both
cases.
@os-d os-d requested review from makubacki and apop5 July 23, 2024 19:56
@github-actions github-actions bot added impact:non-functional Does not have a functional impact impact:testing Affects testing labels Jul 23, 2024
@os-d os-d added the type:bug Something isn't working label Jul 23, 2024
@os-d os-d merged commit 69e9464 into microsoft:release/202311 Jul 23, 2024
30 checks passed
@os-d os-d deleted the osde/inaccessibletest branch July 23, 2024 21:32
os-d added a commit to os-d/mu_tiano_platforms that referenced this pull request Jul 23, 2024
The DxePagingAuditTestApp was failing on all architectures because
of a misimplementation. That was fixed in
microsoft/mu_plus#528. This patch pulls
in the newer mu_plus to get that change and drops the exemption
from Q35 and SBSA.
os-d added a commit to os-d/mu_tiano_platforms that referenced this pull request Jul 23, 2024
The DxePagingAuditTestApp was failing on all architectures because
of a misimplementation. That was fixed in
microsoft/mu_plus#528. This patch pulls
in the newer mu_plus to get that change and drops the exemption
from Q35 and SBSA.
os-d added a commit to microsoft/mu_tiano_platforms that referenced this pull request Jul 23, 2024
## Description

The DxePagingAuditTestApp was failing on all architectures because of a
misimplementation. That was fixed in
microsoft/mu_plus#528. This patch pulls in the
newer mu_plus to get that change and drops the exemption from Q35 and
SBSA.

- [ ] Impacts functionality?
- **Functionality** - Does the change ultimately impact how firmware
functions?
- Examples: Add a new library, publish a new PPI, update an algorithm,
...
- [ ] Impacts security?
- **Security** - Does the change have a direct security impact on an
application,
    flow, or firmware?
  - Examples: Crypto algorithm change, buffer overflow fix, parameter
    validation improvement, ...
- [ ] Breaking change?
- **Breaking change** - Will anyone consuming this change experience a
break
    in build or boot behavior?
- Examples: Add a new library class, move a module to a different repo,
call
    a function in a new library class in a pre-existing module, ...
- [x] Includes tests?
  - **Tests** - Does the change include any explicit test code?
  - Examples: Unit tests, integration tests, robot tests, ...
- [ ] Includes documentation?
- **Documentation** - Does the change contain explicit documentation
additions
    outside direct code modifications (and comments)?
- Examples: Update readme file, add feature readme file, link to
documentation
    on an a separate Web page, ...

## How This Was Tested

Ran paging audit test and it succeeds.
## Integration Instructions

N/A.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
impact:non-functional Does not have a functional impact impact:testing Affects testing type:bug Something isn't working
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants