This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/7203

-- gerrit

commit 94116ad3c7ca3245b34908d2b828ad8e616f3d48
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Mon Sep 19 11:36:06 2022 +0200

    target/dsp563xx: fix scan-build warning
    
    Scan-build triggers a warning:
            Unix API: Allocator sizeof operand mismatch
            dsp563xx.c:2143 Result of 'calloc' is converted to a pointer
                    of type 'uint8_t', which is incompatible with sizeof
                     operand type 'uint32_t'
    
    It's a false positive because calloc() is properly used in this
    case, as the uint8_t array is used in blocks of 4 elements to read
    or write uint32_t values.
    
    Either
            calloc(sizeof(uint32_t), count);
    and
            malloc(count * sizeof(uint32_t));
    keep triggering the same warning.
    
    Drop the warning by moving the computation of the size in a
    separate statement and by using malloc().
    
    Change-Id: I5bb1ece177774eefdc5d9cd049338f8f2be87cd7
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/target/dsp563xx.c b/src/target/dsp563xx.c
index 3702cfb4ce..b8df627d28 100644
--- a/src/target/dsp563xx.c
+++ b/src/target/dsp563xx.c
@@ -2140,7 +2140,8 @@ COMMAND_HANDLER(dsp563xx_mem_command)
                        COMMAND_PARSE_NUMBER(u32, CMD_ARGV[1], count);
        }
 
-       buffer = calloc(count, sizeof(uint32_t));
+       const size_t buffer_size = count * sizeof(uint32_t);
+       buffer = malloc(buffer_size);
 
        if (read_mem == 1) {
                err = dsp563xx_read_memory(target, mem_type, address, 
sizeof(uint32_t),

-- 

Reply via email to