VirtualBox

Changeset 98965 in vbox for trunk/src/VBox/Main


Ignore:
Timestamp:
Mar 14, 2023 3:47:35 PM (2 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
156314
Message:

Main/UefiVairableStore: The shim parsing the MokList rejects it due to EFI_VAR_HEADER_ATTR_RUNTIME_ACCESS being set, bugref:10287

Location:
trunk/src/VBox/Main
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/include/UefiVariableStoreImpl.h

    r98964 r98965  
    9494    HRESULT i_uefiSigDbAddSig(RTEFISIGDB hEfiSigDb, const void *pvData, size_t cbData, const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType);
    9595    HRESULT i_uefiVarStoreAddSignatureToDbVec(PCEFI_GUID pGuid, const char *pszDb, const std::vector<BYTE> &aData,
    96                                               const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType);
     96                                              const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType, bool fRuntime = true);
    9797    HRESULT i_uefiVarStoreAddSignatureToDb(PCEFI_GUID pGuid, const char *pszDb, const void *pvData, size_t cbData,
    98                                            const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType);
     98                                           const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType, bool fRuntime = true);
    9999
    100100    struct Data;            // opaque data struct, defined in UefiVariableStoreImpl.cpp
  • trunk/src/VBox/Main/src-server/UefiVariableStoreImpl.cpp

    r98964 r98965  
    568568
    569569    EFI_GUID GuidMokList = EFI_IMAGE_MOK_DATABASE_GUID;
    570     hrc = i_uefiVarStoreAddSignatureToDbVec(&GuidMokList, "MokList", aData, aOwnerUuid, enmSignatureType);
     570    hrc = i_uefiVarStoreAddSignatureToDbVec(&GuidMokList, "MokList", aData, aOwnerUuid, enmSignatureType, false /*fRuntime*/);
    571571
    572572    i_releaseUefiVariableStore();
     
    927927
    928928HRESULT UefiVariableStore::i_uefiVarStoreAddSignatureToDb(PCEFI_GUID pGuid, const char *pszDb, const void *pvData, size_t cbData,
    929                                                           const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType)
     929                                                          const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType, bool fRuntime)
    930930{
    931931    RTVFSFILE hVfsFileSigDb = NIL_RTVFSFILE;
     
    934934                                         EFI_VAR_HEADER_ATTR_NON_VOLATILE
    935935                                       | EFI_VAR_HEADER_ATTR_BOOTSERVICE_ACCESS
    936                                        | EFI_VAR_HEADER_ATTR_RUNTIME_ACCESS
     936                                       | (fRuntime ? EFI_VAR_HEADER_ATTR_RUNTIME_ACCESS : 0)
    937937                                       | EFI_AUTH_VAR_HEADER_ATTR_TIME_BASED_AUTH_WRITE_ACCESS,
    938938                                       &hVfsFileSigDb);
     
    974974
    975975HRESULT UefiVariableStore::i_uefiVarStoreAddSignatureToDbVec(PCEFI_GUID pGuid, const char *pszDb, const std::vector<BYTE> &aData,
    976                                                              const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType)
    977 {
    978     return i_uefiVarStoreAddSignatureToDb(pGuid, pszDb, &aData.front(), aData.size(), aOwnerUuid, enmSignatureType);
     976                                                             const com::Guid &aOwnerUuid, SignatureType_T enmSignatureType, bool fRuntime)
     977{
     978    return i_uefiVarStoreAddSignatureToDb(pGuid, pszDb, &aData.front(), aData.size(), aOwnerUuid, enmSignatureType, fRuntime);
    979979}
    980980
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette