libsepol/cil: Do not check flavor when checking for duplicate parameters
diff mbox series

Message ID 20200304212831.18292-1-jwcart2@gmail.com
State Accepted
Delegated to: Ondrej Mosnáček
Headers show
Series
  • libsepol/cil: Do not check flavor when checking for duplicate parameters
Related show

Commit Message

James Carter March 4, 2020, 9:28 p.m. UTC
A parameter of a macro was only considered to be a duplicate if it
matched both the name and flavor of another parameter. While it is
true that CIL is able to differentiate between those two parameters,
there is no reason to use the same name for two macro parameters and
it is better to return an error for what is probably an error.

Remove the check of the flavors when checking for duplicate parameters.

Signed-off-by: James Carter <jwcart2@gmail.com>
---
 libsepol/cil/src/cil_build_ast.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

Comments

Ondrej Mosnacek March 9, 2020, 12:05 p.m. UTC | #1
On Wed, Mar 4, 2020 at 10:28 PM James Carter <jwcart2@gmail.com> wrote:
> A parameter of a macro was only considered to be a duplicate if it
> matched both the name and flavor of another parameter. While it is
> true that CIL is able to differentiate between those two parameters,
> there is no reason to use the same name for two macro parameters and
> it is better to return an error for what is probably an error.
>
> Remove the check of the flavors when checking for duplicate parameters.
>
> Signed-off-by: James Carter <jwcart2@gmail.com>
> ---
>  libsepol/cil/src/cil_build_ast.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/libsepol/cil/src/cil_build_ast.c b/libsepol/cil/src/cil_build_ast.c
> index 307b1ee3..fcecdc4f 100644
> --- a/libsepol/cil/src/cil_build_ast.c
> +++ b/libsepol/cil/src/cil_build_ast.c
> @@ -5304,11 +5304,9 @@ int cil_gen_macro(struct cil_db *db, struct cil_tree_node *parse_current, struct
>                 struct cil_list_item *curr_param;
>                 cil_list_for_each(curr_param, macro->params) {
>                         if (param->str == ((struct cil_param*)curr_param->data)->str) {
> -                               if (param->flavor == ((struct cil_param*)curr_param->data)->flavor) {
> -                                       cil_log(CIL_ERR, "Duplicate parameter\n");
> -                                       cil_destroy_param(param);
> -                                       goto exit;
> -                               }
> +                               cil_log(CIL_ERR, "Duplicate parameter\n");
> +                               cil_destroy_param(param);
> +                               goto exit;
>                         }
>                 }
>
> --
> 2.17.1
>

Acked-by: Ondrej Mosnacek <omosnace@redhat.com>

--
Ondrej Mosnacek <omosnace at redhat dot com>
Software Engineer, Security Technologies
Red Hat, Inc.
Ondrej Mosnacek March 11, 2020, 11:43 a.m. UTC | #2
On Mon, Mar 9, 2020 at 1:05 PM Ondrej Mosnacek <omosnace@redhat.com> wrote:
> On Wed, Mar 4, 2020 at 10:28 PM James Carter <jwcart2@gmail.com> wrote:
> > A parameter of a macro was only considered to be a duplicate if it
> > matched both the name and flavor of another parameter. While it is
> > true that CIL is able to differentiate between those two parameters,
> > there is no reason to use the same name for two macro parameters and
> > it is better to return an error for what is probably an error.
> >
> > Remove the check of the flavors when checking for duplicate parameters.
> >
> > Signed-off-by: James Carter <jwcart2@gmail.com>
> > ---
> >  libsepol/cil/src/cil_build_ast.c | 8 +++-----
> >  1 file changed, 3 insertions(+), 5 deletions(-)
> >
> > diff --git a/libsepol/cil/src/cil_build_ast.c b/libsepol/cil/src/cil_build_ast.c
> > index 307b1ee3..fcecdc4f 100644
> > --- a/libsepol/cil/src/cil_build_ast.c
> > +++ b/libsepol/cil/src/cil_build_ast.c
> > @@ -5304,11 +5304,9 @@ int cil_gen_macro(struct cil_db *db, struct cil_tree_node *parse_current, struct
> >                 struct cil_list_item *curr_param;
> >                 cil_list_for_each(curr_param, macro->params) {
> >                         if (param->str == ((struct cil_param*)curr_param->data)->str) {
> > -                               if (param->flavor == ((struct cil_param*)curr_param->data)->flavor) {
> > -                                       cil_log(CIL_ERR, "Duplicate parameter\n");
> > -                                       cil_destroy_param(param);
> > -                                       goto exit;
> > -                               }
> > +                               cil_log(CIL_ERR, "Duplicate parameter\n");
> > +                               cil_destroy_param(param);
> > +                               goto exit;
> >                         }
> >                 }
> >
> > --
> > 2.17.1
> >
>
> Acked-by: Ondrej Mosnacek <omosnace@redhat.com>

Applied, thanks.

Patch
diff mbox series

diff --git a/libsepol/cil/src/cil_build_ast.c b/libsepol/cil/src/cil_build_ast.c
index 307b1ee3..fcecdc4f 100644
--- a/libsepol/cil/src/cil_build_ast.c
+++ b/libsepol/cil/src/cil_build_ast.c
@@ -5304,11 +5304,9 @@  int cil_gen_macro(struct cil_db *db, struct cil_tree_node *parse_current, struct
 		struct cil_list_item *curr_param;
 		cil_list_for_each(curr_param, macro->params) {
 			if (param->str == ((struct cil_param*)curr_param->data)->str) {
-				if (param->flavor == ((struct cil_param*)curr_param->data)->flavor) {
-					cil_log(CIL_ERR, "Duplicate parameter\n");
-					cil_destroy_param(param);
-					goto exit;
-				}
+				cil_log(CIL_ERR, "Duplicate parameter\n");
+				cil_destroy_param(param);
+				goto exit;
 			}
 		}