image: fix binary detection for small files
Previously, if the image file was less than 9 bytes long, it was assumed to be an error when it could be a binary image file. This patch makes OpenOCD detect these cases as binary files. Change-Id: I5b4dad2b547786246887812ac75907378fe58671 Signed-off-by: Marek Vrbka <marek.vrbka@codasip.com> Reviewed-on: https://review.openocd.org/c/openocd/+/7880 Tested-by: jenkins Reviewed-by: Tomas Vanek <vanekt@fbl.cz> Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
This commit is contained in:
parent
62f76b2169
commit
d41a204d82
|
@ -50,13 +50,16 @@ static int autodetect_image_type(struct image *image, const char *url)
|
|||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
retval = fileio_read(fileio, 9, buffer, &read_bytes);
|
||||
|
||||
if (retval == ERROR_OK) {
|
||||
if (read_bytes != 9)
|
||||
retval = ERROR_FILEIO_OPERATION_FAILED;
|
||||
}
|
||||
fileio_close(fileio);
|
||||
|
||||
/* If the file is smaller than 9 bytes, it can only be bin */
|
||||
if (retval == ERROR_OK && read_bytes != 9) {
|
||||
LOG_DEBUG("Less than 9 bytes in the image file found.");
|
||||
LOG_DEBUG("BIN image detected.");
|
||||
image->type = IMAGE_BINARY;
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
||||
if (retval != ERROR_OK)
|
||||
return retval;
|
||||
|
||||
|
@ -82,8 +85,10 @@ static int autodetect_image_type(struct image *image, const char *url)
|
|||
&& (buffer[1] >= '0') && (buffer[1] < '9')) {
|
||||
LOG_DEBUG("S19 image detected.");
|
||||
image->type = IMAGE_SRECORD;
|
||||
} else
|
||||
} else {
|
||||
LOG_DEBUG("BIN image detected.");
|
||||
image->type = IMAGE_BINARY;
|
||||
}
|
||||
|
||||
return ERROR_OK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue