libsepol: Changes to ebitmap.h to fix compiler warnings

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>
Acked-by: Petr Lautrbach <lautrbach@redhat.com>
This commit is contained in:
James Carter 2023-04-12 10:03:15 -04:00
parent 14f35fde50
commit cd575089db
1 changed files with 2 additions and 2 deletions

View File

@ -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)