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:
X512
2020-01-12 13:59:40 +00:00
committed by Jérôme Duval
parent cf4ffd85fd
commit 3d7fbc1a0b
2 changed files with 6 additions and 3 deletions
@@ -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);
+3 -3
View File
@@ -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;