Re: [v2 PATCH 3/8] Write and read TUNABLE flags in related data structures.

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

 



This patch contained 2 whitespace errors.  they have been fixed before
applying it to my queue branch, however please fix them if there is a
need to resubmit a v3.

-Eric

On Wed, Aug 31, 2011 at 11:29 PM, Harry Ciao <qingtao.cao@xxxxxxxxxxxxx> wrote:
> All flags in cond_bool_datum_t and cond_node_t structures are written
> or read for policy modules which version is no less than
> MOD_POLICYDB_VERSION_TUNABLE_SEP.
>
> Note, for cond_node_t the TUNABLE flag bit would be used only at expand,
> however, it won't hurt to read/write this field for modules(potentially
> for future usage).
>
> Signed-off-by: Harry Ciao <qingtao.cao@xxxxxxxxxxxxx>
> ---
>  libsepol/src/conditional.c |   21 +++++++++++++++++++--
>  libsepol/src/write.c       |   18 ++++++++++++++++++
>  2 files changed, 37 insertions(+), 2 deletions(-)
>
> diff --git a/libsepol/src/conditional.c b/libsepol/src/conditional.c
> index efdedb0..d9d4fee 100644
> --- a/libsepol/src/conditional.c
> +++ b/libsepol/src/conditional.c
> @@ -564,8 +564,8 @@ static int bool_isvalid(cond_bool_datum_t * b)
>        return 1;
>  }
>
> -int cond_read_bool(policydb_t * p
> -                  __attribute__ ((unused)), hashtab_t h,
> +int cond_read_bool(policydb_t * p,
> +                  hashtab_t h,
>                   struct policy_file *fp)
>  {
>        char *key = 0;
> @@ -597,6 +597,15 @@ int cond_read_bool(policydb_t * p
>        if (rc < 0)
>                goto err;
>        key[len] = 0;
> +
> +       if (p->policy_type != POLICY_KERN &&
> +           p->policyvers >= MOD_POLICYDB_VERSION_TUNABLE_SEP) {
> +               rc = next_entry(buf, fp, sizeof(uint32_t));
> +               if (rc < 0)
> +                       goto err;
> +               booldatum->flags = le32_to_cpu(buf[0]);
> +       }
> +
>        if (hashtab_insert(h, key, booldatum))
>                goto err;
>
> @@ -810,6 +819,14 @@ static int cond_read_node(policydb_t * p, cond_node_t * node, void *fp)
>                if (avrule_read_list(p, &node->avfalse_list, fp))
>                        goto err;
>        }
> +
> +       if (p->policy_type != POLICY_KERN &&
> +           p->policyvers >= MOD_POLICYDB_VERSION_TUNABLE_SEP) {
> +               rc = next_entry(buf, fp, sizeof(uint32_t));
> +               if (rc < 0)
> +                       goto err;
> +               node->flags = le32_to_cpu(buf[0]);
> +       }
>
>        return 0;
>       err:
> diff --git a/libsepol/src/write.c b/libsepol/src/write.c
> index 290e036..4284c93 100644
> --- a/libsepol/src/write.c
> +++ b/libsepol/src/write.c
> @@ -607,6 +607,7 @@ static int cond_write_bool(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
>        unsigned int items, items2;
>        struct policy_data *pd = ptr;
>        struct policy_file *fp = pd->fp;
> +       struct policydb *p = pd->p;
>
>        booldatum = (cond_bool_datum_t *) datum;
>
> @@ -621,6 +622,15 @@ static int cond_write_bool(hashtab_key_t key, hashtab_datum_t datum, void *ptr)
>        items = put_entry(key, 1, len, fp);
>        if (items != len)
>                return POLICYDB_ERROR;
> +
> +       if (p->policy_type != POLICY_KERN &&
> +           p->policyvers >= MOD_POLICYDB_VERSION_TUNABLE_SEP) {
> +               buf[0] = cpu_to_le32(booldatum->flags);
> +               items = put_entry(buf, sizeof(uint32_t), 1, fp);
> +               if (items != 1)
> +                       return POLICYDB_ERROR;
> +       }
> +
>        return POLICYDB_SUCCESS;
>  }
>
> @@ -727,6 +737,14 @@ static int cond_write_node(policydb_t * p,
>                        return POLICYDB_ERROR;
>        }
>
> +       if (p->policy_type != POLICY_KERN &&
> +           p->policyvers >= MOD_POLICYDB_VERSION_TUNABLE_SEP) {
> +               buf[0] = cpu_to_le32(node->flags);
> +               items = put_entry(buf, sizeof(uint32_t), 1, fp);
> +               if (items != 1)
> +                       return POLICYDB_ERROR;
> +       }
> +
>        return POLICYDB_SUCCESS;
>  }
>
> --
> 1.7.0.4
>
>
> --
> This message was distributed to subscribers of the selinux mailing list.
> If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
> the words "unsubscribe selinux" without quotes as the message.
>


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.


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

  Powered by Linux