This is an automated email from Gerrit.

"Marek Vrbka <marek.vr...@codasip.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7880

-- gerrit

commit efe2e5f3fbd5a626028c9bc55dd80db0290c25e6
Author: Marek Vrbka <marek.vr...@codasip.com>
Date:   Thu Aug 31 08:30:37 2023 +0200

    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 makes OpenOCD detect these cases
    as binary files.
    
    Change-Id: I5b4dad2b547786246887812ac75907378fe58671
    Signed-off-by: Marek Vrbka <marek.vr...@codasip.com>

diff --git a/src/target/image.c b/src/target/image.c
index f8de7a23e3..81b14aac8e 100644
--- a/src/target/image.c
+++ b/src/target/image.c
@@ -50,12 +50,15 @@ 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);
+       fileio_close(fileio);
 
-       if (retval == ERROR_OK) {
-               if (read_bytes != 9)
-                       retval = ERROR_FILEIO_OPERATION_FAILED;
+       /* 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;
        }
-       fileio_close(fileio);
 
        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;
 }

-- 

Reply via email to