VirtualBox

Ignore:
Timestamp:
Jul 29, 2020 9:53:31 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
139569
Message:

IPRT/ldrELF: Early support for loading ET_DYN images. Current code is a bit cumbersome as it approaches it from the ET_REL/sections perspective rather than using program headers and the dynamic section. [build fixes] bugref:9801

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/common/ldr/ldrELFRelocatable.cpp.h

    r85501 r85503  
    11811181        else
    11821182            rc = RTLDRELF_NAME(RelocateSectionExecDyn)(pModElf, BaseAddr, pfnGetImport, pvUser,
    1183                                                        0, pModElf->cbImage,
     1183                                                       0, (Elf_Size)pModElf->cbImage,
    11841184                                                       (const uint8_t *)pModElf->pvBits /** @todo file offset ?? */,
    11851185                                                       (uint8_t *)pvBits,
     
    21222122            if (pModElf->Ehdr.e_type != ET_DYN && pModElf->Ehdr.e_type != ET_EXEC)
    21232123                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
    2124                                            "Unexpected SHT_DYNAMIC (i=%d) for e_type=%d", pszLogName, i, pModElf->Ehdr.e_type);
     2124                                           "%s: Unexpected SHT_DYNAMIC (i=%d) for e_type=%d", pszLogName, i, pModElf->Ehdr.e_type);
    21252125            if (paShdrs[i].sh_entsize != sizeof(Elf_Dyn))
    21262126                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
     
    21312131            if (cDynamic > _64K || cDynamic < 2)
    21322132                return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
    2133                                            "%s: SHT_DYNAMIC (i=%d) sh_size=" FMT_ELF_XWORD " is out of range, expected %u",
     2133                                           "%s: SHT_DYNAMIC (i=%d) sh_size=" FMT_ELF_XWORD " is out of range (2..64K)",
    21342134                                           pszLogName, i, paShdrs[i].sh_size);
    21352135            pModElf->cDynamic = (unsigned)cDynamic;
     
    27782778            return RTERRINFO_LOG_SET_F(pErrInfo, VERR_BAD_EXE_FORMAT,
    27792779                                       "%s: section header #%u (%s type=" FMT_ELF_WORD " size=" FMT_ELF_XWORD ") contains relocations not referenced by the dynamic section",
    2780                                        pszLogName,
     2780                                       pszLogName, i,
    27812781                                       RTLDRELF_NAME(GetSHdrName)(pModElf, paShdrs[i].sh_name, szSecHdrNm, sizeof(szSecHdrNm)),
    27822782                                       paShdrs[i].sh_type, paShdrs[i].sh_size);
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