Re: [PATCH] libsepol/cil: restore error on context rule conflicts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Oct 12, 2022 at 10:28 AM Christian Göttsche
<cgzones@xxxxxxxxxxxxxx> wrote:
>
> Commit bc26ddc59c8d ("libsepol/cil: Limit the amount of reporting for
> context rule conflicts") reworked the processing of context rule
> conflicts to limit the number of written conflicting statements to
> increase readability of the printed error message.  It forgot to set the
> return value, signaling a context conflict, in the case the logging
> level is higher than warning (e.g. in semodule(8), which defaults to
> error).
>
> Reported-by: Milos Malik <mmalik@xxxxxxxxxx> [1]
> Fixes: bc26ddc59c8d ("libsepol/cil: Limit the amount of reporting for context rule conflicts")
>
> [1]: https://lore.kernel.org/selinux/87y1u1rkoo.fsf@xxxxxxxxxx/
>
> Signed-off-by: Christian Göttsche <cgzones@xxxxxxxxxxxxxx>

Acked-by: James Carter <jwcart2@xxxxxxxxx>

> ---
>  libsepol/cil/src/cil_post.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libsepol/cil/src/cil_post.c b/libsepol/cil/src/cil_post.c
> index 6e95225f..11e572e2 100644
> --- a/libsepol/cil/src/cil_post.c
> +++ b/libsepol/cil/src/cil_post.c
> @@ -2290,6 +2290,7 @@ static int __cil_post_process_context_rules(struct cil_sort *sort, int (*compar)
>                 } else {
>                         removed++;
>                         if (!db->multiple_decls || concompar(&sort->array[i], &sort->array[j]) != 0) {
> +                               rc = SEPOL_ERR;
>                                 conflicting++;
>                                 if (log_level >= CIL_WARN) {
>                                         struct cil_list_item li;
> @@ -2297,7 +2298,6 @@ static int __cil_post_process_context_rules(struct cil_sort *sort, int (*compar)
>                                         li.flavor = flavor;
>                                         if (conflicting == 1) {
>                                                 cil_log(CIL_WARN, "Found conflicting %s rules\n", flavor_str);
> -                                               rc = SEPOL_ERR;
>                                                 li.data = sort->array[i];
>                                                 rc2 = cil_tree_walk(db->ast->root, __cil_post_report_conflict,
>                                                                                         NULL, NULL, &li);
> --
> 2.37.2
>




[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux