Re: [PATCH v2] libselinux/utils: introduce getpolicyload

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

 



On Fri, Jul 14, 2023 at 2:56 PM Christian Göttsche
<cgzones@xxxxxxxxxxxxxx> wrote:
>
> Introduce a helper binary to print the number of policy reloads on the
> running system.
> Print only a single number to ease the usage by scripts.
>
> Signed-off-by: Christian Göttsche <cgzones@xxxxxxxxxxxxxx>

Acked-by: James Carter <jwcart2@xxxxxxxxx>

> ---
> v2:
>   - use main() prototype with arguments
>   - use argv[0] instead of hard coding program name
>   - fix indentation and spacing issues
>   - add binary to .gitignore file
> Signed-off-by: Christian Göttsche <cgzones@xxxxxxxxxxxxxx>
> ---
>  libselinux/utils/.gitignore      |  1 +
>  libselinux/utils/getpolicyload.c | 30 ++++++++++++++++++++++++++++++
>  2 files changed, 31 insertions(+)
>  create mode 100644 libselinux/utils/getpolicyload.c
>
> diff --git a/libselinux/utils/.gitignore b/libselinux/utils/.gitignore
> index b19b94a8..b3311360 100644
> --- a/libselinux/utils/.gitignore
> +++ b/libselinux/utils/.gitignore
> @@ -10,6 +10,7 @@ getenforce
>  getfilecon
>  getpidcon
>  getpidprevcon
> +getpolicyload
>  getsebool
>  getseuser
>  matchpathcon
> diff --git a/libselinux/utils/getpolicyload.c b/libselinux/utils/getpolicyload.c
> new file mode 100644
> index 00000000..ce06bb78
> --- /dev/null
> +++ b/libselinux/utils/getpolicyload.c
> @@ -0,0 +1,30 @@
> +#include <stdio.h>
> +#include <stdlib.h>
> +
> +#include <selinux/avc.h>
> +
> +
> +int main(int argc __attribute__ ((unused)),
> +         char* argv[] __attribute__ ((unused))) {
> +       int rc;
> +
> +       /*
> +       * Do not use netlink as fallback, since selinux_status_policyload(3)
> +       * works only after a first message has been received.
> +       */
> +       rc = selinux_status_open(/*fallback=*/0);
> +       if (rc < 0) {
> +               fprintf(stderr, "%s:  failed to open SELinux status map:  %m\n", argv[0]);
> +               return EXIT_FAILURE;
> +       }
> +
> +       rc = selinux_status_policyload();
> +       if (rc < 0)
> +               fprintf(stderr, "%s:  failed to read policyload from SELinux status page:  %m\n", argv[0]);
> +       else
> +               printf("%d\n", rc);
> +
> +       selinux_status_close();
> +
> +       return (rc < 0) ? EXIT_FAILURE : EXIT_SUCCESS;
> +}
> --
> 2.40.1
>




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

  Powered by Linux