* [PATCH 1/3] libsepol: break circular include @ 2022-07-13 13:43 Christian Göttsche 2022-07-13 13:43 ` [PATCH 2/3] libsepol: include necessary headers in headers Christian Göttsche ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Christian Göttsche @ 2022-07-13 13:43 UTC (permalink / raw) To: selinux Since `struct type_set` is forward declared including policydb/policydb.h is not necessary and creates a circular include. Also drop the unnecessary forward declaration of `struct policydb`. Signed-off-by: Christian Göttsche <cgzones@googlemail.com> --- libsepol/include/sepol/policydb/constraint.h | 3 --- 1 file changed, 3 deletions(-) diff --git a/libsepol/include/sepol/policydb/constraint.h b/libsepol/include/sepol/policydb/constraint.h index b91fc4e9..82335e21 100644 --- a/libsepol/include/sepol/policydb/constraint.h +++ b/libsepol/include/sepol/policydb/constraint.h @@ -18,7 +18,6 @@ #ifndef _SEPOL_POLICYDB_CONSTRAINT_H_ #define _SEPOL_POLICYDB_CONSTRAINT_H_ -#include <sepol/policydb/policydb.h> #include <sepol/policydb/ebitmap.h> #include <sepol/policydb/flask_types.h> @@ -70,8 +69,6 @@ typedef struct constraint_node { struct constraint_node *next; /* next constraint */ } constraint_node_t; -struct policydb; - extern int constraint_expr_init(constraint_expr_t * expr); extern void constraint_expr_destroy(constraint_expr_t * expr); -- 2.36.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/3] libsepol: include necessary headers in headers 2022-07-13 13:43 [PATCH 1/3] libsepol: break circular include Christian Göttsche @ 2022-07-13 13:43 ` Christian Göttsche 2022-07-13 13:43 ` [PATCH 3/3] libsepol: enclose macro parameters and replacement lists in parentheses Christian Göttsche 2022-07-19 16:29 ` [PATCH 1/3] libsepol: break circular include James Carter 2 siblings, 0 replies; 5+ messages in thread From: Christian Göttsche @ 2022-07-13 13:43 UTC (permalink / raw) To: selinux Include policydb header file required for typedef policydb_t. This is for example helpful when working with an IDE, which needs to resolve those symbols. Signed-off-by: Christian Göttsche <cgzones@googlemail.com> --- libsepol/include/sepol/policydb/util.h | 2 ++ libsepol/src/mls.h | 1 + 2 files changed, 3 insertions(+) diff --git a/libsepol/include/sepol/policydb/util.h b/libsepol/include/sepol/policydb/util.h index ee236a25..db8da213 100644 --- a/libsepol/include/sepol/policydb/util.h +++ b/libsepol/include/sepol/policydb/util.h @@ -23,6 +23,8 @@ #ifndef __SEPOL_UTIL_H__ #define __SEPOL_UTIL_H__ +#include <sepol/policydb/policydb.h> + #ifdef __cplusplus extern "C" { #endif diff --git a/libsepol/src/mls.h b/libsepol/src/mls.h index eb4a1cb8..befd12c5 100644 --- a/libsepol/src/mls.h +++ b/libsepol/src/mls.h @@ -25,6 +25,7 @@ #include "policydb_internal.h" #include <sepol/policydb/context.h> +#include <sepol/policydb/policydb.h> #include "handle.h" extern int mls_from_string(sepol_handle_t * handle, -- 2.36.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 3/3] libsepol: enclose macro parameters and replacement lists in parentheses 2022-07-13 13:43 [PATCH 1/3] libsepol: break circular include Christian Göttsche 2022-07-13 13:43 ` [PATCH 2/3] libsepol: include necessary headers in headers Christian Göttsche @ 2022-07-13 13:43 ` Christian Göttsche 2022-07-19 16:29 ` [PATCH 1/3] libsepol: break circular include James Carter 2 siblings, 0 replies; 5+ messages in thread From: Christian Göttsche @ 2022-07-13 13:43 UTC (permalink / raw) To: selinux Signed-off-by: Christian Göttsche <cgzones@googlemail.com> --- libsepol/include/sepol/errcodes.h | 13 ++++++------- libsepol/include/sepol/policydb/policydb.h | 10 +++++----- libsepol/src/kernel_to_cil.c | 2 +- libsepol/src/module_to_cil.c | 2 +- libsepol/src/util.c | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/libsepol/include/sepol/errcodes.h b/libsepol/include/sepol/errcodes.h index 6e9ff316..e5fe71e3 100644 --- a/libsepol/include/sepol/errcodes.h +++ b/libsepol/include/sepol/errcodes.h @@ -16,15 +16,14 @@ extern "C" { * codes that don't map to system error codes should be defined * outside of the range of system error codes. */ -#define SEPOL_ERR -1 -#define SEPOL_ENOTSUP -2 /* feature not supported in module language */ -#define SEPOL_EREQ -3 /* requirements not met */ +#define SEPOL_ERR (-1) +#define SEPOL_ENOTSUP (-2) /* feature not supported in module language */ +#define SEPOL_EREQ (-3) /* requirements not met */ /* Error codes that map to system error codes */ -#define SEPOL_ENOMEM -ENOMEM -#define SEPOL_ERANGE -ERANGE -#define SEPOL_EEXIST -EEXIST -#define SEPOL_ENOENT -ENOENT +#define SEPOL_ENOMEM (-ENOMEM) +#define SEPOL_EEXIST (-EEXIST) +#define SEPOL_ENOENT (-ENOENT) #ifdef __cplusplus } diff --git a/libsepol/include/sepol/policydb/policydb.h b/libsepol/include/sepol/policydb/policydb.h index de0068a6..ef1a014a 100644 --- a/libsepol/include/sepol/policydb/policydb.h +++ b/libsepol/include/sepol/policydb/policydb.h @@ -251,9 +251,9 @@ typedef struct class_perm_node { struct class_perm_node *next; } class_perm_node_t; -#define xperm_test(x, p) (UINT32_C(1) & (p[x >> 5] >> (x & 0x1f))) -#define xperm_set(x, p) (p[x >> 5] |= (UINT32_C(1) << (x & 0x1f))) -#define xperm_clear(x, p) (p[x >> 5] &= ~(UINT32_C(1) << (x & 0x1f))) +#define xperm_test(x, p) (UINT32_C(1) & ((p)[(x) >> 5] >> ((x) & 0x1f))) +#define xperm_set(x, p) ((p)[(x) >> 5] |= (UINT32_C(1) << ((x) & 0x1f))) +#define xperm_clear(x, p) ((p)[(x) >> 5] &= ~(UINT32_C(1) << ((x) & 0x1f))) #define EXTENDED_PERMS_LEN 8 typedef struct av_extended_perms { @@ -795,9 +795,9 @@ extern int policydb_set_target_platform(policydb_t *p, int platform); #define policydb_has_boundary_feature(p) \ (((p)->policy_type == POLICY_KERN \ - && p->policyvers >= POLICYDB_VERSION_BOUNDARY) || \ + && (p)->policyvers >= POLICYDB_VERSION_BOUNDARY) || \ ((p)->policy_type != POLICY_KERN \ - && p->policyvers >= MOD_POLICYDB_VERSION_BOUNDARY)) + && (p)->policyvers >= MOD_POLICYDB_VERSION_BOUNDARY)) /* the config flags related to unknown classes/perms are bits 2 and 3 */ #define DENY_UNKNOWN SEPOL_DENY_UNKNOWN diff --git a/libsepol/src/kernel_to_cil.c b/libsepol/src/kernel_to_cil.c index 9128ac55..5a1336a3 100644 --- a/libsepol/src/kernel_to_cil.c +++ b/libsepol/src/kernel_to_cil.c @@ -1626,7 +1626,7 @@ exit: return rc; } -#define next_bit_in_range(i, p) ((i + 1 < sizeof(p)*8) && xperm_test((i + 1), p)) +#define next_bit_in_range(i, p) (((i) + 1 < sizeof(p)*8) && xperm_test(((i) + 1), p)) static char *xperms_to_str(avtab_extended_perms_t *xperms) { diff --git a/libsepol/src/module_to_cil.c b/libsepol/src/module_to_cil.c index b35bf055..b900290a 100644 --- a/libsepol/src/module_to_cil.c +++ b/libsepol/src/module_to_cil.c @@ -624,7 +624,7 @@ exit: return rc; } -#define next_bit_in_range(i, p) ((i + 1 < sizeof(p)*8) && xperm_test((i + 1), p)) +#define next_bit_in_range(i, p) (((i) + 1 < sizeof(p)*8) && xperm_test(((i) + 1), p)) static int xperms_to_cil(const av_extended_perms_t *xperms) { diff --git a/libsepol/src/util.c b/libsepol/src/util.c index 1cd1308d..0a2edc85 100644 --- a/libsepol/src/util.c +++ b/libsepol/src/util.c @@ -124,7 +124,7 @@ char *sepol_av_to_string(policydb_t * policydbp, uint32_t tclass, return avbuf; } -#define next_bit_in_range(i, p) ((i + 1 < sizeof(p)*8) && xperm_test((i + 1), p)) +#define next_bit_in_range(i, p) (((i) + 1 < sizeof(p)*8) && xperm_test(((i) + 1), p)) char *sepol_extended_perms_to_string(avtab_extended_perms_t *xperms) { -- 2.36.1 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] libsepol: break circular include 2022-07-13 13:43 [PATCH 1/3] libsepol: break circular include Christian Göttsche 2022-07-13 13:43 ` [PATCH 2/3] libsepol: include necessary headers in headers Christian Göttsche 2022-07-13 13:43 ` [PATCH 3/3] libsepol: enclose macro parameters and replacement lists in parentheses Christian Göttsche @ 2022-07-19 16:29 ` James Carter 2022-08-09 15:18 ` James Carter 2 siblings, 1 reply; 5+ messages in thread From: James Carter @ 2022-07-19 16:29 UTC (permalink / raw) To: Christian Göttsche; +Cc: SElinux list On Wed, Jul 13, 2022 at 9:50 AM Christian Göttsche <cgzones@googlemail.com> wrote: > > Since `struct type_set` is forward declared including > policydb/policydb.h is not necessary and creates a circular include. > > Also drop the unnecessary forward declaration of `struct policydb`. > > Signed-off-by: Christian Göttsche <cgzones@googlemail.com> For these three patches: Acked-by: James Carter <jwcart2@gmail.com> > --- > libsepol/include/sepol/policydb/constraint.h | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/libsepol/include/sepol/policydb/constraint.h b/libsepol/include/sepol/policydb/constraint.h > index b91fc4e9..82335e21 100644 > --- a/libsepol/include/sepol/policydb/constraint.h > +++ b/libsepol/include/sepol/policydb/constraint.h > @@ -18,7 +18,6 @@ > #ifndef _SEPOL_POLICYDB_CONSTRAINT_H_ > #define _SEPOL_POLICYDB_CONSTRAINT_H_ > > -#include <sepol/policydb/policydb.h> > #include <sepol/policydb/ebitmap.h> > #include <sepol/policydb/flask_types.h> > > @@ -70,8 +69,6 @@ typedef struct constraint_node { > struct constraint_node *next; /* next constraint */ > } constraint_node_t; > > -struct policydb; > - > extern int constraint_expr_init(constraint_expr_t * expr); > extern void constraint_expr_destroy(constraint_expr_t * expr); > > -- > 2.36.1 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/3] libsepol: break circular include 2022-07-19 16:29 ` [PATCH 1/3] libsepol: break circular include James Carter @ 2022-08-09 15:18 ` James Carter 0 siblings, 0 replies; 5+ messages in thread From: James Carter @ 2022-08-09 15:18 UTC (permalink / raw) To: Christian Göttsche; +Cc: SElinux list On Tue, Jul 19, 2022 at 12:29 PM James Carter <jwcart2@gmail.com> wrote: > > On Wed, Jul 13, 2022 at 9:50 AM Christian Göttsche > <cgzones@googlemail.com> wrote: > > > > Since `struct type_set` is forward declared including > > policydb/policydb.h is not necessary and creates a circular include. > > > > Also drop the unnecessary forward declaration of `struct policydb`. > > > > Signed-off-by: Christian Göttsche <cgzones@googlemail.com> > > For these three patches: > Acked-by: James Carter <jwcart2@gmail.com> > These three patches have been merged. Thanks, Jim > > --- > > libsepol/include/sepol/policydb/constraint.h | 3 --- > > 1 file changed, 3 deletions(-) > > > > diff --git a/libsepol/include/sepol/policydb/constraint.h b/libsepol/include/sepol/policydb/constraint.h > > index b91fc4e9..82335e21 100644 > > --- a/libsepol/include/sepol/policydb/constraint.h > > +++ b/libsepol/include/sepol/policydb/constraint.h > > @@ -18,7 +18,6 @@ > > #ifndef _SEPOL_POLICYDB_CONSTRAINT_H_ > > #define _SEPOL_POLICYDB_CONSTRAINT_H_ > > > > -#include <sepol/policydb/policydb.h> > > #include <sepol/policydb/ebitmap.h> > > #include <sepol/policydb/flask_types.h> > > > > @@ -70,8 +69,6 @@ typedef struct constraint_node { > > struct constraint_node *next; /* next constraint */ > > } constraint_node_t; > > > > -struct policydb; > > - > > extern int constraint_expr_init(constraint_expr_t * expr); > > extern void constraint_expr_destroy(constraint_expr_t * expr); > > > > -- > > 2.36.1 > > ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-08-09 15:18 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2022-07-13 13:43 [PATCH 1/3] libsepol: break circular include Christian Göttsche 2022-07-13 13:43 ` [PATCH 2/3] libsepol: include necessary headers in headers Christian Göttsche 2022-07-13 13:43 ` [PATCH 3/3] libsepol: enclose macro parameters and replacement lists in parentheses Christian Göttsche 2022-07-19 16:29 ` [PATCH 1/3] libsepol: break circular include James Carter 2022-08-09 15:18 ` James Carter
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).