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/+/8824

-- gerrit

commit 285fb90639af8c84e03359220ce64d4e6a6049f2
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sat Apr 5 17:04:43 2025 +0200

    list: silent scan-build false positive
    
    With commit c023534e7b6f ("target: use list for target events")
    scan build incorrectly states that list_add() would be called with
    the field 'next' of the parameter 'head' (thus 'head->next') set
    to NULL. Then, list_add() would call linux_list_add() with the
    parameter 'next' set to NULL that will cause a NULL dereference.
    
    While this can really happen with broken code, it's not the case
    with the code from the change above.
    
    Add assert() in linux_list_add() to silent scan build on this
    false positive and to detect future incorrect use of the list.
    
    Change-Id: Iec7f3d70237312b646ac58f76ecaab2fa25eab41
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/helper/list.h b/src/helper/list.h
index ba07f15568..89b8468ec4 100644
--- a/src/helper/list.h
+++ b/src/helper/list.h
@@ -35,6 +35,7 @@
 
 /* begin OpenOCD changes */
 
+#include <assert.h>
 #include <stddef.h>
 
 struct list_head {
@@ -109,6 +110,9 @@ static inline void
 linux_list_add(struct list_head *new, struct list_head *prev,
        struct list_head *next)
 {
+       assert(next);
+       assert(prev);
+
        next->prev = new;
        new->next = next;
        new->prev = prev;

-- 

Reply via email to