New elf_open function will also need to initialize an elf file. Split this to avoid missing members initialization. Signed-off-by: Clement Leger <cleger@xxxxxxxxx> --- common/elf.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/common/elf.c b/common/elf.c index 55f5bc645..5534632b2 100644 --- a/common/elf.c +++ b/common/elf.c @@ -119,6 +119,15 @@ static int elf_check_image(struct elf_image *elf) return 0; } +static int elf_check_init(struct elf_image *elf, void *buf) +{ + elf->buf = buf; + elf->low_addr = (void *) (unsigned long) -1; + elf->high_addr = 0; + + return elf_check_image(elf); +} + struct elf_image *elf_load_image(void *buf) { struct elf_image *elf; @@ -128,13 +137,11 @@ struct elf_image *elf_load_image(void *buf) INIT_LIST_HEAD(&elf->list); - elf->buf = buf; - elf->low_addr = (void *) (unsigned long) -1; - elf->high_addr = 0; - - ret = elf_check_image(elf); - if (ret) + ret = elf_check_init(elf, buf); + if (ret) { + free(elf); return ERR_PTR(ret); + } ret = load_elf_image_phdr(elf); if (ret) { -- 2.17.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox