jtag: fix build with configure --enable-verbose 03/7403/2
authorAntonio Borneo <borneo.antonio@gmail.com>
Sat, 17 Dec 2022 22:05:23 +0000 (23:05 +0100)
committerAntonio Borneo <borneo.antonio@gmail.com>
Sun, 18 Dec 2022 21:50:17 +0000 (21:50 +0000)
With flag --enable-verbose, configure enables compiling some
conditional code that with new gcc triggers an error:
error: '%04x' directive output may be truncated writing
between 4 and 8 bytes into a region of size 5
[-Werror=format-truncation=]

Extend the buffer to contain the full 8 bytes of %04x on a 'int'
and change the limit in snprintf.
Skip the intermediate buffer 's[4]'.
Align the code to the coding style.

Change-Id: Ifc8a6e4686555578a7355a1f6049471fd5e31913
Signed-off-by: Antonio Borneo <borneo.antonio@gmail.com>
Reported-by: Karl Hammar <karl@aspodata.se>
Reported-by: Tommy Murphy <tommy_murphy@hotmail.com>
Fixes: https://sourceforge.net/p/openocd/tickets/376/
Reviewed-on: https://review.openocd.org/c/openocd/+/7403
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
src/jtag/drivers/arm-jtag-ew.c
src/jtag/drivers/opendous.c

index a3e9e17129e1544df3012190e20411dc72a7ba9d..7db3c7b15a07cec71266b77943ac3e5395ecadc9 100644 (file)
@@ -776,17 +776,12 @@ static int armjtagew_usb_read(struct armjtagew *armjtagew, int exp_in_length)
 
 static void armjtagew_debug_buffer(uint8_t *buffer, int length)
 {
-       char line[81];
-       char s[4];
-       int i;
-       int j;
+       char line[8 + 3 * BYTES_PER_LINE + 1];
 
-       for (i = 0; i < length; i += BYTES_PER_LINE) {
-               snprintf(line, 5, "%04x", i);
-               for (j = i; j < i + BYTES_PER_LINE && j < length; j++) {
-                       snprintf(s, 4, " %02x", buffer[j]);
-                       strcat(line, s);
-               }
+       for (int i = 0; i < length; i += BYTES_PER_LINE) {
+               int n = snprintf(line, 9, "%04x", i);
+               for (int j = i; j < i + BYTES_PER_LINE && j < length; j++)
+                       n += snprintf(line + n, 4, " %02x", buffer[j]);
                LOG_DEBUG("%s", line);
 
                /* Prevent GDB timeout (writing to log might take some time) */
index d0c5277882094a19040577b0563db9803df4974c..c353aef407dd654fef0808cb819a68b7873a1c19 100644 (file)
@@ -796,17 +796,12 @@ int opendous_usb_read(struct opendous_jtag *opendous_jtag)
 
 void opendous_debug_buffer(uint8_t *buffer, int length)
 {
-       char line[81];
-       char s[4];
-       int i;
-       int j;
+       char line[8 + 3 * BYTES_PER_LINE + 1];
 
-       for (i = 0; i < length; i += BYTES_PER_LINE) {
-               snprintf(line, 5, "%04x", i);
-               for (j = i; j < i + BYTES_PER_LINE && j < length; j++) {
-                       snprintf(s, 4, " %02x", buffer[j]);
-                       strcat(line, s);
-               }
+       for (int i = 0; i < length; i += BYTES_PER_LINE) {
+               int n = snprintf(line, 9, "%04x", i);
+               for (int j = i; j < i + BYTES_PER_LINE && j < length; j++)
+                       n += snprintf(line + n, 4, " %02x", buffer[j]);
                LOG_DEBUG("%s", line);
        }
 }

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)