]> git.sur5r.net Git - openocd/commitdiff
target/image: make i/j unsigned to avoid ubsan runtime error
authorCody Schafer <openocd@codyps.com>
Mon, 2 Jul 2018 19:56:53 +0000 (15:56 -0400)
committerTomas Vanek <vanekt@fbl.cz>
Fri, 13 Jul 2018 16:15:57 +0000 (17:15 +0100)
src/target/image.c:1055:15: runtime error: left shift of 128 by 24 places cannot be represented in type 'int'

Change-Id: I322fd391cf3f242beffc8a274824763c8c5e69a4
Signed-off-by: Cody Schafer <openocd@codyps.com>
Reviewed-on: http://openocd.zylin.com/4584
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-by: Christopher Head <chead@zaber.com>
src/target/image.c

index 9f56bea0452941eb4e449cded738baf6f9ce4980..0d98c57b2a5d414edb2e835e0b488fafd315216e 100644 (file)
@@ -1048,8 +1048,7 @@ int image_calculate_checksum(uint8_t *buffer, uint32_t nbytes, uint32_t *checksu
        static bool first_init;
        if (!first_init) {
                /* Initialize the CRC table and the decoding table.  */
-               int i, j;
-               unsigned int c;
+               unsigned int i, j, c;
                for (i = 0; i < 256; i++) {
                        /* as per gdb */
                        for (c = i << 24, j = 8; j > 0; --j)