aboutsummaryrefslogtreecommitdiff
path: root/src/helper
diff options
context:
space:
mode:
authorAndreas Bolsch <hyphen0break@gmail.com>2017-10-28 19:39:35 +0200
committerTomas Vanek <vanekt@fbl.cz>2018-02-14 08:27:01 +0000
commit445dc23eb51bc2d7f4466392d36d40fcecf54f65 (patch)
tree48a258617dbc23e60c90cb398be008966945dc32 /src/helper
parent38030e011542a894237b517c065d22db97525954 (diff)
downloadriscv-openocd-445dc23eb51bc2d7f4466392d36d40fcecf54f65.zip
riscv-openocd-445dc23eb51bc2d7f4466392d36d40fcecf54f65.tar.gz
riscv-openocd-445dc23eb51bc2d7f4466392d36d40fcecf54f65.tar.bz2
Handle improperly build image files gracefully
Images build improperly (by simply concatenating separate images) were accepted, but anything after the first end-of-file record *silently* ignored. Now emit warning for intel and motorola images upon non-whitespace after first end-of-file record but continue reading anyway. ST ships some images broken that way in their CubeMX packages ... Change-Id: I0c5d08fa90070fed11fb805c5f0dc39817048176 Signed-off-by: Andreas Bolsch <hyphen0break@gmail.com> Reviewed-on: http://openocd.zylin.com/4281 Tested-by: jenkins Reviewed-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src/helper')
-rw-r--r--src/helper/fileio.c5
-rw-r--r--src/helper/fileio.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/src/helper/fileio.c b/src/helper/fileio.c
index 47494df..9dd57e7 100644
--- a/src/helper/fileio.c
+++ b/src/helper/fileio.c
@@ -153,6 +153,11 @@ int fileio_close(struct fileio *fileio)
return retval;
}
+int fileio_feof(struct fileio *fileio)
+{
+ return feof(fileio->file);
+}
+
int fileio_seek(struct fileio *fileio, size_t position)
{
int retval;
diff --git a/src/helper/fileio.h b/src/helper/fileio.h
index ae4a3ec..02592e2 100644
--- a/src/helper/fileio.h
+++ b/src/helper/fileio.h
@@ -46,6 +46,7 @@ struct fileio;
int fileio_open(struct fileio **fileio, const char *url,
enum fileio_access access_type, enum fileio_type type);
int fileio_close(struct fileio *fileio);
+int fileio_feof(struct fileio *fileio);
int fileio_seek(struct fileio *fileio, size_t position);
int fileio_fgets(struct fileio *fileio, size_t size, void *buffer);