Message ID | 20230809204046.110783-2-jwcart2@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | cd575089dbd4 |
Delegated to: | Petr Lautrbach |
Headers | show |
Series | Add support for notself and other to CIL | expand |
diff --git a/libsepol/include/sepol/policydb/ebitmap.h b/libsepol/include/sepol/policydb/ebitmap.h index c434c4ba..7e19c301 100644 --- a/libsepol/include/sepol/policydb/ebitmap.h +++ b/libsepol/include/sepol/policydb/ebitmap.h @@ -39,8 +39,8 @@ typedef struct ebitmap { uint32_t highbit; /* highest position in the total bitmap */ } ebitmap_t; -#define ebitmap_is_empty(e) (((e)->highbit) == 0) -#define ebitmap_length(e) ((e)->highbit) +#define ebitmap_is_empty(e) (((e)->node) == NULL) +#define ebitmap_length(e) ((e)->node ? (e)->highbit : 0) #define ebitmap_startbit(e) ((e)->node ? (e)->node->startbit : 0) #define ebitmap_startnode(e) ((e)->node)
When compiling with the "-Wnull-dereference" flag, the compiler is not smart enough to realize that anytime the ebitmap_t node field is NULL, the highbit field will equal 0. This causes false positive warnings to be generated. Change the ebitmap_is_empty() and ebitmap_length() macros to check for the node being NULL instead of just relying on the value of highbit to eliminate these false warnings. Signed-off-by: James Carter <jwcart2@gmail.com> --- libsepol/include/sepol/policydb/ebitmap.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)