All of lore.kernel.org
 help / color / mirror / Atom feed
From: Petr Lautrbach <lautrbach@redhat.com>
To: "Christian Göttsche" <cgoettsche@seltendoof.de>, selinux@vger.kernel.org
Cc: "Christian Göttsche" <cgzones@googlemail.com>
Subject: Re: [PATCH v2] libselinux/utils: drop reachable assert in sefcontext_compile
Date: Tue, 03 Dec 2024 17:21:53 +0100	[thread overview]
Message-ID: <87ed2orb32.fsf@redhat.com> (raw)
In-Reply-To: <20241203155448.48237-1-cgoettsche@seltendoof.de>

Christian Göttsche <cgoettsche@seltendoof.de> writes:

> From: Christian Göttsche <cgzones@googlemail.com>
>
> The two asserts following qsort(3) where useful during development to
> ensure the comparison function and the corresponding pointer handling
> were correct.  They however do not take into account an empty file
> context definition file containing no definitions and thus `stab->nel`
> being NULL.  Drop the two asserts.
>
> Also return early to not depend on whether calloc(3) called with a size
> of zero returns NULL or a special value.
>
> Reported-by: Petr Lautrbach <lautrbach@redhat.com>
> Closes: https://lore.kernel.org/selinux/87jzchqck5.fsf@redhat.com/
> Fixes: 92306daf ("libselinux: rework selabel_file(5) database")
> Signed-off-by: Christian Göttsche <cgzones@googlemail.com>

Works for me. Thanks!

Tested-by: Petr Lautrbach <lautrbach@redhat.com>

> ---
> v2: fix condition from not zero to equal to zero
> Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
> ---
>  libselinux/utils/sefcontext_compile.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/libselinux/utils/sefcontext_compile.c b/libselinux/utils/sefcontext_compile.c
> index 23d31274..e5da51ea 100644
> --- a/libselinux/utils/sefcontext_compile.c
> +++ b/libselinux/utils/sefcontext_compile.c
> @@ -188,6 +188,9 @@ static int write_sidtab(FILE *bin_file, const struct sidtab *stab)
>  	if (len != 1)
>  		return -1;
>  
> +	if (stab->nel == 0)
> +		return 0;
> +
>  	/* sort entries by id */
>  	sids = calloc(stab->nel, sizeof(*sids));
>  	if (!sids)
> @@ -203,8 +206,6 @@ static int write_sidtab(FILE *bin_file, const struct sidtab *stab)
>  	}
>  	assert(index == stab->nel);
>  	qsort(sids, stab->nel, sizeof(struct security_id), security_id_compare);
> -	assert(sids[0].id == 1);
> -	assert(sids[stab->nel - 1].id == stab->nel);
>  
>  	/* write raw contexts sorted by id */
>  	for (uint32_t i = 0; i < stab->nel; i++) {
> -- 
> 2.45.2


  reply	other threads:[~2024-12-03 16:22 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-03 15:54 [PATCH v2] libselinux/utils: drop reachable assert in sefcontext_compile Christian Göttsche
2024-12-03 16:21 ` Petr Lautrbach [this message]
2024-12-03 22:01   ` James Carter
2024-12-04 14:32     ` James Carter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ed2orb32.fsf@redhat.com \
    --to=lautrbach@redhat.com \
    --cc=cgoettsche@seltendoof.de \
    --cc=cgzones@googlemail.com \
    --cc=selinux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.