Skip to content

Releases: microsoft/mu_feature_mm_supv

v11.0.0

12 Apr 18:41
200ba10
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

  • Integrate image record changes from MU\_BASECORE @kuqin12 (#279)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    This change integrates 4 commits from MU_BASECORE to use the common library implementation for image record creation and resolve the corresponding override validation failures.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • 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

    This change was tested on QEMU Q35 and booted to UEFI shell.

    Integration Instructions

    Platform needs to include ImagePropertiesRecordLib in their platform dsc file to pick up this change.

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v10.0.0...v11.0.0

v10.0.0

03 Apr 19:46
606fc27
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

  • BaseLib override update @kuqin12 (#265)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    The BaseLib is updated with new support of CRC16-CCITT-FALSE implementation. This change added the change and updated the override hash.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • 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

    This change is tested on QEMU Q35 and booted to UEFI shell.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v9.0.1...v10.0.0

v9.0.1

03 Apr 05:37
222506e
Compare
Choose a tag to compare

What's Changed

  • Fix exception handling errors for supervisor @kuqin12 (#261)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    The current exception handling routine has 2 issues:

    1. When it comes to page fault, the miscellaneous exception handler will print the exception context and then hand off to the specific page fault handler, which will make the log appear as the system double fault.
    2. When the page fault exception occurs, the existing setup will switch the system to use a separate stack, which is hardcoded to be 4KB from the top of supervisor stack. This size is insufficient after switching to PageTableLib based page table attribute manipulations.

    This change should fix both issues.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • 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

    This change is tested on QEMU Q35 and verified bootable into UEFI shell.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    
  • Add SmmCpuSyncLib to the mm supervisor core @kenlautner (#257)
    Change Details
      ## Description

    Integrated the following commits from MU_BASECORE into the supervisor core (which themselves were taken from edk2):
    microsoft/mu_basecore@fba09d0
    microsoft/mu_basecore@f5417b8
    microsoft/mu_basecore@d421e2b
    microsoft/mu_basecore@bb71205

    Additionally updated the override of UefiCpuPkg in the supervisor cores inf.

    • 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 physical platforms with the latest MU 202311 branches. No issues observed.

    Integration Instructions

    N/A




  • Remove basetools dependencies @kuqin12 (#251)
    Change Details
      # Preface

    Please ensure you have read the contribution docs prior
    to submitting the pull request. In particular,
    pull request guidelines.

    Description

    It does not seem that the edk2-basetools are not being used. This change will remove it.

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • 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

    Pipeline change, no firmware function changes.

    Integration Instructions

    N/A.

      </blockquote>
      <hr>
    </details>
    
  • Add StackCheckLib Instances to Platform DSC Files @TaylorBeebe (#237)
    Change Details
      ## Description

    An instance of StackCheckLib must be in each DSC to accommodate -fstack-protector and /GS flags.

    • 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 in pipelines

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v9.0.0...v9.0.1

v9.0.0

07 Feb 02:03
cb08bb6
Compare
Choose a tag to compare

What's Changed

  • Bump version value to v9 to match the release version @kuqin12 (#224)
    Change Details
      ## Description

    This change updated the release version to v9 to reflect the new value from release template.

    • 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

    N/A

    Integration Instructions

    N/A




⚠️ Breaking Changes

🐛 Bug Fixes

  • CVE-2022-36765 - StandaloneMmHobLibSysCall: Prevent integer overflow in CreateHob() [Rebase \& FF] @makubacki (#222)
    Change Details
      ## Description

    Contains the primary commit for the HOB calculation overflow and
    a separate commit to build with the tip of mu_basecore release/202302.


    CVE-2022-36765 - StandaloneMmHobLibSysCall: Prevent integer overflow in CreateHob()

    Based on commit 9a75b030cf27d2530444e9a2f9f11867f79bf679 in edk2.

    REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4166

    Fix integer overflow in various CreateHob instances.
    Fixes: CVE-2022-36765

    The CreateHob() function aligns the requested size to 8
    performing the following operation:

    HobLength = (UINT16)((HobLength + 0x7) & (~0x7));
    

    No checks are performed to ensure this value doesn't
    overflow, and could lead to CreateHob() returning a smaller
    HOB than requested, which could lead to OOB HOB accesses.


    MmSupervisorPkg/BaseLibSysCall/BaseLib: Update override

    The change that occurred in MdePkg/Library/BaseLib only affected
    AARCH64 which does not exist in the instance in MmSupervisorPkg.

    So, this change simply updates the override hash...

Read more

v8.1.8

01 Feb 02:57
e0c16a8
Compare
Choose a tag to compare

What's Changed

  • MmSupervisorPkg/Core: Remove optimization for depex evaluation @makubacki (#220)
    Change Details
      ## Description
    • Derived from edk2 commit: 2ddae5df31789853040f4c5261bb85e2f010c4a7
    • Override hash updated to reflect change in mu_basecore

    The current dependency evaluator violates the memory access permission
    when patching depex grammar directly in the read-only depex memory area.

    Laszlo pointed out the optimization issue in the thread (1) "Memory
    Attribute for depex section" and provided suggested patch to remove the
    perf optimization.

    In my testing, removing the optimization does not make significant perf
    reduction. That makes sense that StandaloneMM dispatcher only searches
    in MM protocol database and does not depend on UEFI/DXE protocol
    database. Also, we don't have many protocols in StandaloneMM like
    UEFI/DXE.

    From Laszlo,

    "The patch removes the EFI_DEP_REPLACE_TRUE handling altogether, plus it
    CONST-ifies the Iterator pointer (which points into the DEPEX section),
    so that the compiler catch any possible accesses at build time that
    would write to the write-protected DEPEX memory area."

    (1) https://edk2.groups.io/g/devel/message/113531

    Signed-off-by: Nhi Pham nhi@os.amperecomputing.com
    Tested-by: levi.yun yeoreum.yun@arm.com
    Reviewed-by: levi.yun yeoreum.yun@arm.com
    Reviewed-by: Ray Ni ray.ni@intel.com

    (cherry picked from commit 2ddae5df31789853040f4c5261bb85e2f010c4a7)

    • 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

    • CI and StandaloneMmPkg boot with change present.

    Integration Instructions

    N/A




  • Update pip-requirements.txt @Javagedes (#218)
    Change Details
      ## Description

    Updates edk2-pytool-extensions and edk2-pytool-library to work with the latest commit of MU_BASECORE

    For each item, place an "x" in between [ and ] if true. Example: [x].
    (you can also check items in the GitHub UI)

    • 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

    N/A

    Integration Instructions

    N/A




  • .git-blame-ignore-revs: Ignore Line Ending only commits @makubacki (#212)
    Change Details
      ## Description

    Adds commits that only converted line endings to a
    .git-blame-ignore-revs file so they are ignored by git blame. This is
    supported by GitHub:
    https://github.blog/changelog/2022-03-24-ignore-commits-in-the-blame-view-beta/

    This helps clean up git blame by filtering out these changes.

    Note: This file needs to be updated on rebase branches. Processes
    like filter-branch can automatically update relevant SHAs.

    • 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

    • git blame

    Integration Instructions

    N/A




🐛 Bug Fixes

  • MmIplPei: Add missing libs to INF @makubacki (#210)
    Change Details
      ## Description

    These libraries need to be linked against MmIplPei. Since they are
    missing, linker failures can result depending on platform integration
    of library instances against the module.

    • 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

    CI build.

    Integration Instructions

    N/A




Full Changelog: v8.1.7...v8.1.8

v8.1.7

05 Dec 22:08
ec90ee9
Compare
Choose a tag to compare

What's Changed

🔐 Security Impacting

  • Use New Stack Cookie Library @TaylorBeebe (#195)
    Change Details
      ## Description

    This series transitions the core to use the new stack cookie libraries.
    The stack cookie value no longer needs to be initialized before
    image execution and can instead be initialized in the library
    constructor.

    • 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

    Integration Instructions

    N/A




Full Changelog: v8.1.6...v8.1.7

v8.1.6

18 Oct 17:18
1a849e3
Compare
Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • MmSupervisorPkg/Core: Remove redundant null check (CodeQL) @makubacki (#183)
    Change Details
      ## Description

    Fixes #182

    The main change is to remove a NULL check for the CommBufferSize
    parameter value in the MM_SUPERVISOR_REQUEST_FETCH_POLICY switch
    case since it triggers a CodeQL alert as a redundant NULL check
    operation. The actual parameter value is checked for NULL at the
    beginning of the function and not modified until that line of code.

    However, the function API and implementation is confusing so that's
    cleaned up as well.

    1. The Context parameter is not used at all. Since it is marked
      optional, it is left so the function prototype can remain
      consistent in case the parameter is needed in the future.
    2. The CommBuffer and CommBufferSize parameters are also marked
      optional, but they're not. The function immediately returns
      EFI_INVALID_PARAMETER if they are not provided (null).

    For (2), the optional modifier is simply removed from the arguments
    to indicate the function expects valid pointers are passed.

    • 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

    • MmSupervisorPkg build and CI checks

    Integration Instructions

    N/A




Full Changelog: v8.1.5...v8.1.6

v8.1.5

30 Aug 21:02
6fb2f88
Compare
Choose a tag to compare

What's Changed

  • MmSupervisorPkg: Integrate UefiCpuLib breaking change @makubacki (#164)
    Change Details
      ## Description

    Updates the repo for a change that merged UefiCpuLib with CpuLib.

    UefiCpuLib will be removed entirely soon so all references are updated to CpuLib.

    • 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

    • MmSupervisorPkg CI build
    • Feature integration build (in QemuQ35Pkg)

    Integration Instructions

    N/A




Full Changelog: v8.1.4...v8.1.5

v8.1.4

28 Jul 14:57
87dd556
Compare
Choose a tag to compare

What's Changed

  • MmSupervisorPkg.dec: Use 16 pages for user mode comm buffer by default @makubacki (#157)
    Change Details
      ## Description

    PcdUserCommBufferPages is currently set to 4. This buffer is
    used for UEFI variable transactions where includes larger data like Intel
    memory training and Secure Boot related UEFI variables.

    16 pages provides 64KB by default which allows these common scenarios
    to succeed in most cases without platform intervention.

    • 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

    Verified on Qemu Q35 and a physical Intel platform.

    Integration Instructions

    If the default value was previously unmodified on a platform, expect that the
    user mode communicate buffer will now be 48KB larger. If that's an issue, set
    gMmSupervisorPkgTokenSpaceGuid.PcdUserCommBufferPages to 4 in the platform
    DSC file to restore previous behavior.




Full Changelog: v8.1.3...v8.1.4

v8.1.3

21 Jul 19:11
44c7424
Compare
Choose a tag to compare

What's Changed

  • Adding extra step of ownership inspcetion for buffer validity check @kuqin12 (#156)
    Change Details
      ## Description

    Current implementation of MmIsBufferOutsideMmValid for the user instance will only check to see if the requested space is unblocked from the perspective of MM supervisor, which could result in the issue that the region is only unblocked at the supervisor level is still not accessible from user space. If this is the case, FALSE should be returned.

    • 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

    This change is tested on Q35 platform and booted to UEFI shell.

    Integration Instructions

    N/A

      </blockquote>
      <hr>
    </details>
    

Full Changelog: v8.1.2...v8.1.3