diff options
author | Clement Leger <cleger@kalray.eu> | 2020-06-12 09:10:32 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-06-15 16:15:00 +0200 |
commit | 860fbba93e53666ca46dd92dedfda43c9c426931 (patch) | |
tree | 273e7ffbc8946c4a6a3d6e6138df730b2ccdebdb /common/elf.c | |
parent | b2e407ad3e316588dabd016ab71441fa4ad8b816 (diff) | |
download | barebox-860fbba93e53666ca46dd92dedfda43c9c426931.tar.gz barebox-860fbba93e53666ca46dd92dedfda43c9c426931.tar.xz |
common: elf: check number of elf program headers
An elf file without program headers should not be loaded. Add a check
for such cases.
Signed-off-by: Clement Leger <cleger@kalray.eu>
Tested-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/elf.c')
-rw-r--r-- | common/elf.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/common/elf.c b/common/elf.c index 0e92661e1a..bd97858c89 100644 --- a/common/elf.c +++ b/common/elf.c @@ -119,6 +119,11 @@ static int elf_check_image(struct elf_image *elf) return -ENOEXEC; } + if (!elf_hdr_e_phnum(elf, elf->buf)) { + pr_err("No phdr found.\n"); + return -ENOEXEC; + } + return 0; } |