runtime_loader: allow loading executables without section table
Change-Id: I4bfee1d1aa40730586123a70fb480ee91787c15d Reviewed-on: https://review.haiku-os.org/c/haiku/+/2089 Reviewed-by: Jérôme Duval <[email protected]>
This commit is contained in:
@@ -23,6 +23,9 @@ static bool
|
||||
analyze_object_gcc_version(int fd, image_t* image, elf_ehdr& eheader,
|
||||
int32 sheaderSize, char* buffer, size_t bufferSize)
|
||||
{
|
||||
if (sheaderSize <= 0)
|
||||
return false;
|
||||
|
||||
if (sheaderSize > (int)bufferSize) {
|
||||
FATAL("%s: Cannot handle section headers bigger than %lu bytes\n",
|
||||
image->path, bufferSize);
|
||||
|
||||
@@ -416,7 +416,7 @@ parse_elf_header(elf_ehdr* eheader, int32* _pheaderSize,
|
||||
*_pheaderSize = eheader->e_phentsize * eheader->e_phnum;
|
||||
*_sheaderSize = eheader->e_shentsize * eheader->e_shnum;
|
||||
|
||||
if (*_pheaderSize <= 0 || *_sheaderSize <= 0)
|
||||
if (*_pheaderSize <= 0)
|
||||
return B_NOT_AN_EXECUTABLE;
|
||||
|
||||
return B_OK;
|
||||
@@ -444,7 +444,7 @@ parse_elf32_header(Elf32_Ehdr* eheader, int32* _pheaderSize,
|
||||
*_pheaderSize = eheader->e_phentsize * eheader->e_phnum;
|
||||
*_sheaderSize = eheader->e_shentsize * eheader->e_shnum;
|
||||
|
||||
if (*_pheaderSize <= 0 || *_sheaderSize <= 0)
|
||||
if (*_pheaderSize <= 0)
|
||||
return B_NOT_AN_EXECUTABLE;
|
||||
|
||||
return B_OK;
|
||||
@@ -469,7 +469,7 @@ parse_elf64_header(Elf64_Ehdr* eheader, int32* _pheaderSize,
|
||||
*_pheaderSize = eheader->e_phentsize * eheader->e_phnum;
|
||||
*_sheaderSize = eheader->e_shentsize * eheader->e_shnum;
|
||||
|
||||
if (*_pheaderSize <= 0 || *_sheaderSize <= 0)
|
||||
if (*_pheaderSize <= 0)
|
||||
return B_NOT_AN_EXECUTABLE;
|
||||
|
||||
return B_OK;
|
||||
|
||||
Reference in New Issue
Block a user