DLIST_REMOVE: clang: Fix dereference of a null pointer warning
authorNoel Power <noel.power@suse.com>
Fri, 24 May 2019 13:07:46 +0000 (13:07 +0000)
committerNoel Power <npower@samba.org>
Tue, 11 Jun 2019 12:10:17 +0000 (12:10 +0000)
Fixes:

lib/tevent/tevent_wrapper.c:295:3: warning: Access to field 'next' results in a dereference of a null pointer (loaded from field 'prev') <--[clang]

Additionally fix similar instance of the same macro

Signed-off-by: Noel Power <noel.power@suse.com>
Reviewed-by: Gary Lockyer gary@catalyst.net.nz
lib/ldb/include/dlinklist.h
lib/tevent/tevent_util.h
lib/util/dlinklist.h

index ef01aec9f1c5591a32deda00a6142dcb8f441709..822a8266e0436e16169a2aea934904282dccf984 100644 (file)
@@ -86,7 +86,7 @@ do { \
        if ((p) == (list)) { \
                if ((p)->next) (p)->next->prev = (p)->prev; \
                (list) = (p)->next; \
-       } else if ((list) && (p) == (list)->prev) {     \
+       } else if ((p)->prev && (list) && (p) == (list)->prev) {        \
                (p)->prev->next = NULL; \
                (list)->prev = (p)->prev; \
        } else { \
index e2cdbb8d38533fb5b172e3b880b1639a475cadf8..eef4a00f98b414f7ed4ee972484f219cc0acab5a 100644 (file)
@@ -82,7 +82,7 @@ do { \
        if ((p) == (list)) { \
                if ((p)->next) (p)->next->prev = (p)->prev; \
                (list) = (p)->next; \
-       } else if ((list) && (p) == (list)->prev) {     \
+       } else if ((p)->prev && (list) && (p) == (list)->prev) {        \
                (p)->prev->next = NULL; \
                (list)->prev = (p)->prev; \
        } else { \
index 8a1b84d44291f26d53340b86a342bc8d92414730..4003b233761d72f002956ca97bdca9c6bb72d70e 100644 (file)
@@ -82,7 +82,7 @@ do { \
        if ((p) == (list)) { \
                if ((p)->next) (p)->next->prev = (p)->prev; \
                (list) = (p)->next; \
-       } else if ((list) && (p) == (list)->prev) {     \
+       } else if ((p)->prev && (list) && (p) == (list)->prev) {        \
                (p)->prev->next = NULL; \
                (list)->prev = (p)->prev; \
        } else { \