diff mbox

libsemanage: properly check return value of iterate function

Message ID 20171122150959.20243-1-jzarsky@redhat.com (mailing list archive)
State Not Applicable
Headers show

Commit Message

Jan Zarsky Nov. 22, 2017, 3:09 p.m. UTC
Function dbase_llist_iterate iterates over records and checks return
value of iterate function. According to a manpage semanage_iterate(3),
handler can return value 1 for early exit. dbase_llist_iterate
currently checks for return value > 1, which does not include
expected value 1. This affects most of the semanage_*_iterate
and semanage_*_local functions.

Signed-off-by: Jan Zarsky <jzarsky@redhat.com>
---
 libsemanage/src/database_llist.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

William Roberts Nov. 22, 2017, 9:35 p.m. UTC | #1
On Wed, Nov 22, 2017 at 7:09 AM, Jan Zarsky <jzarsky@redhat.com> wrote:
> Function dbase_llist_iterate iterates over records and checks return
> value of iterate function. According to a manpage semanage_iterate(3),
> handler can return value 1 for early exit. dbase_llist_iterate
> currently checks for return value > 1, which does not include
> expected value 1. This affects most of the semanage_*_iterate
> and semanage_*_local functions.

Can you update this message to describe what is affected.

>
> Signed-off-by: Jan Zarsky <jzarsky@redhat.com>
> ---
>  libsemanage/src/database_llist.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libsemanage/src/database_llist.c b/libsemanage/src/database_llist.c
> index 8ce2e2c1..c8f4ff0b 100644
> --- a/libsemanage/src/database_llist.c
> +++ b/libsemanage/src/database_llist.c
> @@ -263,7 +263,7 @@ int dbase_llist_iterate(semanage_handle_t * handle,
>                 if (rc < 0)
>                         goto err;
>
> -               else if (rc > 1)
> +               else if (rc > 0)

This looks fine to me.

>                         break;
>         }
>
> --
> 2.14.3
>

Please resend with the message updated and I'll ack.
William Roberts Nov. 27, 2017, 7:09 p.m. UTC | #2
Thanks. Applied: https://github.com/SELinuxProject/selinux/pull/71

On Wed, Nov 22, 2017 at 7:09 AM, Jan Zarsky <jzarsky@redhat.com> wrote:
> Function dbase_llist_iterate iterates over records and checks return
> value of iterate function. According to a manpage semanage_iterate(3),
> handler can return value 1 for early exit. dbase_llist_iterate
> currently checks for return value > 1, which does not include
> expected value 1. This affects most of the semanage_*_iterate
> and semanage_*_local functions.
>
> Signed-off-by: Jan Zarsky <jzarsky@redhat.com>
> ---
>  libsemanage/src/database_llist.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libsemanage/src/database_llist.c b/libsemanage/src/database_llist.c
> index 8ce2e2c1..c8f4ff0b 100644
> --- a/libsemanage/src/database_llist.c
> +++ b/libsemanage/src/database_llist.c
> @@ -263,7 +263,7 @@ int dbase_llist_iterate(semanage_handle_t * handle,
>                 if (rc < 0)
>                         goto err;
>
> -               else if (rc > 1)
> +               else if (rc > 0)
>                         break;
>         }
>
> --
> 2.14.3
>
>
diff mbox

Patch

diff --git a/libsemanage/src/database_llist.c b/libsemanage/src/database_llist.c
index 8ce2e2c1..c8f4ff0b 100644
--- a/libsemanage/src/database_llist.c
+++ b/libsemanage/src/database_llist.c
@@ -263,7 +263,7 @@  int dbase_llist_iterate(semanage_handle_t * handle,
 		if (rc < 0)
 			goto err;
 
-		else if (rc > 1)
+		else if (rc > 0)
 			break;
 	}