diff mbox series

libsepol/cil: Report disabling an optional block only at high verbose levels

Message ID 20191101151903.15554-1-jwcart2@tycho.nsa.gov (mailing list archive)
State Accepted
Headers show
Series libsepol/cil: Report disabling an optional block only at high verbose levels | expand

Commit Message

James Carter Nov. 1, 2019, 3:19 p.m. UTC
Since failing to resolve a statement in an optional block is normal,
only display messages about the statement failing to resolve and the
optional block being disabled at the highest verbosity level.

These messages are now only at log level CIL_INFO instead of CIL_WARN.

Signed-off-by: James Carter <jwcart2@tycho.nsa.gov>
---
 libsepol/cil/src/cil_resolve_ast.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Nicolas Iooss Nov. 2, 2019, 5:16 p.m. UTC | #1
On Fri, Nov 1, 2019 at 4:25 PM James Carter <jwcart2@tycho.nsa.gov> wrote:
>
> Since failing to resolve a statement in an optional block is normal,
> only display messages about the statement failing to resolve and the
> optional block being disabled at the highest verbosity level.
>
> These messages are now only at log level CIL_INFO instead of CIL_WARN.
>
> Signed-off-by: James Carter <jwcart2@tycho.nsa.gov>

I confirm that this fixes the issue I experienced with "semodule
--verbose -B" being much noisier in 3.0-rc1 than in 2.9.

Acked-by: Nicolas Iooss <nicolas.iooss@m4x.org>

Thanks
Nicolas

> ---
>  libsepol/cil/src/cil_resolve_ast.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/libsepol/cil/src/cil_resolve_ast.c b/libsepol/cil/src/cil_resolve_ast.c
> index 70a60bdf..87575860 100644
> --- a/libsepol/cil/src/cil_resolve_ast.c
> +++ b/libsepol/cil/src/cil_resolve_ast.c
> @@ -3761,14 +3761,16 @@ int __cil_resolve_ast_node_helper(struct cil_tree_node *node, uint32_t *finished
>                 enum cil_log_level lvl = CIL_ERR;
>
>                 if (optstack != NULL) {
> -                       lvl = CIL_WARN;
> +                       lvl = CIL_INFO;
>
>                         struct cil_optional *opt = (struct cil_optional *)optstack->data;
>                         struct cil_tree_node *opt_node = opt->datum.nodes->head->data;
> -                       cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
>                         /* disable an optional if something failed to resolve */
>                         opt->enabled = CIL_FALSE;
> +                       cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));
> +                       cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
>                         rc = SEPOL_OK;
> +                       goto exit;
>                 }
>
>                 cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));
> --
> 2.21.0
>
James Carter Nov. 6, 2019, 5:35 p.m. UTC | #2
On 11/2/19 1:16 PM, Nicolas Iooss wrote:
> On Fri, Nov 1, 2019 at 4:25 PM James Carter <jwcart2@tycho.nsa.gov> wrote:
>>
>> Since failing to resolve a statement in an optional block is normal,
>> only display messages about the statement failing to resolve and the
>> optional block being disabled at the highest verbosity level.
>>
>> These messages are now only at log level CIL_INFO instead of CIL_WARN.
>>
>> Signed-off-by: James Carter <jwcart2@tycho.nsa.gov>
> 
> I confirm that this fixes the issue I experienced with "semodule
> --verbose -B" being much noisier in 3.0-rc1 than in 2.9.
> 
> Acked-by: Nicolas Iooss <nicolas.iooss@m4x.org>
> 
> Thanks
> Nicolas
> 

I merged this.
Jim

>> ---
>>   libsepol/cil/src/cil_resolve_ast.c | 6 ++++--
>>   1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/libsepol/cil/src/cil_resolve_ast.c b/libsepol/cil/src/cil_resolve_ast.c
>> index 70a60bdf..87575860 100644
>> --- a/libsepol/cil/src/cil_resolve_ast.c
>> +++ b/libsepol/cil/src/cil_resolve_ast.c
>> @@ -3761,14 +3761,16 @@ int __cil_resolve_ast_node_helper(struct cil_tree_node *node, uint32_t *finished
>>                  enum cil_log_level lvl = CIL_ERR;
>>
>>                  if (optstack != NULL) {
>> -                       lvl = CIL_WARN;
>> +                       lvl = CIL_INFO;
>>
>>                          struct cil_optional *opt = (struct cil_optional *)optstack->data;
>>                          struct cil_tree_node *opt_node = opt->datum.nodes->head->data;
>> -                       cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
>>                          /* disable an optional if something failed to resolve */
>>                          opt->enabled = CIL_FALSE;
>> +                       cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));
>> +                       cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
>>                          rc = SEPOL_OK;
>> +                       goto exit;
>>                  }
>>
>>                  cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));
>> --
>> 2.21.0
>>
>
diff mbox series

Patch

diff --git a/libsepol/cil/src/cil_resolve_ast.c b/libsepol/cil/src/cil_resolve_ast.c
index 70a60bdf..87575860 100644
--- a/libsepol/cil/src/cil_resolve_ast.c
+++ b/libsepol/cil/src/cil_resolve_ast.c
@@ -3761,14 +3761,16 @@  int __cil_resolve_ast_node_helper(struct cil_tree_node *node, uint32_t *finished
 		enum cil_log_level lvl = CIL_ERR;
 
 		if (optstack != NULL) {
-			lvl = CIL_WARN;
+			lvl = CIL_INFO;
 
 			struct cil_optional *opt = (struct cil_optional *)optstack->data;
 			struct cil_tree_node *opt_node = opt->datum.nodes->head->data;
-			cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
 			/* disable an optional if something failed to resolve */
 			opt->enabled = CIL_FALSE;
+			cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));
+			cil_tree_log(opt_node, lvl, "Disabling optional '%s'", opt->datum.name);
 			rc = SEPOL_OK;
+			goto exit;
 		}
 
 		cil_tree_log(node, lvl, "Failed to resolve %s statement", cil_node_to_string(node));