helper: hexify correctly handle signed chars24/1124/3
authorSpencer Oliver <spen@spen-soft.co.uk>
Mon, 28 Jan 2013 11:45:51 +0000 (28 11:45 +0000)
committerØyvind Harboe <oyvindharboe@gmail.com>
Thu, 31 Jan 2013 14:50:24 +0000 (31 14:50 +0000)
The current implementation of hexify was not correctly handling signed chars.

This function is currently used by the ti-icdi driver and as such was causing
random write issues.

As a note perhaps a better long term fix would be to change to using uint8_t
buffers rather than char. This will require changes to the ti-icdi driver
aswell.

Change-Id: I572e69ff2b99227a7d412de056458c0393794b03
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/1124
Tested-by: jenkins
Reviewed-by: Øyvind Harboe <oyvindharboe@gmail.com>
src/helper/binarybuffer.c

index a90ec7b..b3e4491 100644 (file)
@@ -393,7 +393,7 @@ int hexify(char *hex, const char *bin, int count, int out_maxlen)
                count = strlen(bin);
 
        for (i = 0; i < count; i++)
-               cmd_len += snprintf(hex + cmd_len, out_maxlen - cmd_len, "%02x", bin[i]);
+               cmd_len += snprintf(hex + cmd_len, out_maxlen - cmd_len, "%02x", bin[i] & 0xff);
 
        return cmd_len;
 }