target/image: report error if ELF file contains no loadable sections
The existing code asserted in that case, which is not correct. This would allow the user to crash OpenOCD with a bad ELF file, which is not what we want. A proper error should be reported in that case and OpenOCD should not crash. Change-Id: Ied5a6a6fd4ee0fd163f3fe850d304a121ecbe33a Signed-off-by: Christian Hoff <christian.hoff@advantest.com> Reviewed-on: http://openocd.zylin.com/6172 Reviewed-by: Jonathan McDowell <noodles-openocd@earth.li> Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
9206bd243b
commit
565129119f
|
@ -426,7 +426,10 @@ static int image_elf32_read_headers(struct image *image)
|
|||
(field32(elf, elf->segments32[i].p_filesz) != 0))
|
||||
image->num_sections++;
|
||||
|
||||
assert(image->num_sections > 0);
|
||||
if (image->num_sections == 0) {
|
||||
LOG_ERROR("invalid ELF file, no loadable segments");
|
||||
return ERROR_IMAGE_FORMAT_ERROR;
|
||||
}
|
||||
|
||||
/**
|
||||
* some ELF linkers produce binaries with *all* the program header
|
||||
|
@ -548,7 +551,10 @@ static int image_elf64_read_headers(struct image *image)
|
|||
(field64(elf, elf->segments64[i].p_filesz) != 0))
|
||||
image->num_sections++;
|
||||
|
||||
assert(image->num_sections > 0);
|
||||
if (image->num_sections == 0) {
|
||||
LOG_ERROR("invalid ELF file, no loadable segments");
|
||||
return ERROR_IMAGE_FORMAT_ERROR;
|
||||
}
|
||||
|
||||
/**
|
||||
* some ELF linkers produce binaries with *all* the program header
|
||||
|
|
Loading…
Reference in New Issue