VirtualBox

Changeset 90314 in vbox for trunk/src/VBox/Runtime/common


Ignore:
Timestamp:
Jul 23, 2021 3:48:06 PM (4 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
145871
Message:

Runtime/efivarstorevfs.cpp: Some fixes, bugref:9580

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/efi/efivarstorevfs.cpp

    r90133 r90314  
    18831883    {
    18841884        for (uint32_t i = 0; i < pThis->cVars; i++)
     1885        {
    18851886            RTStrFree(pThis->paVars[i].pszName);
     1887            if (pThis->paVars[i].pvData)
     1888                RTMemFree(pThis->paVars[i].pvData);
     1889        }
    18861890
    18871891        RTMemFree(pThis->paVars);
     
    20892093    if (   cbVarMax <= cbName
    20902094        || cbVarMax - cbName <= cbData)
    2091         return RTERRINFO_LOG_SET_F(pErrInfo, VERR_VFS_UNSUPPORTED_FORMAT, "Variable exceeds remaining space in store (cbName=%llu cbData=%llu cbVarMax=%llu)",
     2095        return RTERRINFO_LOG_SET_F(pErrInfo, VERR_VFS_UNSUPPORTED_FORMAT, "Variable exceeds remaining space in store (cbName=%u cbData=%u cbVarMax=%llu)",
    20922096                                   cbName, cbData, cbVarMax);
    20932097
     
    21462150    PRTEFIVAR pVar = &pThis->paVars[pThis->cVars++];
    21472151    pVar->pVarStore  = pThis;
    2148     pVar->offVarData = offVar + sizeof(VarHdr) + RT_LE2H_U32(VarHdr.cbName);
     2152    if (RT_LE2H_U32(VarHdr.cbData))
     2153        pVar->offVarData = offVar + sizeof(VarHdr) + RT_LE2H_U32(VarHdr.cbName);
     2154    else
     2155        pVar->offVarData = 0;
    21492156    pVar->fAttr      = RT_LE2H_U32(VarHdr.fAttr);
    21502157    pVar->cMonotonic = RT_LE2H_U64(VarHdr.cMonotonic);
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