[PATCH 3/3] devcgroup: code cleanup - Kernel

This is a discussion on [PATCH 3/3] devcgroup: code cleanup - Kernel ; - clean up set_majmin() - use simple_strtoul() to parse major/minor Signed-off-by: Li Zefan Acked-by: Serge Hallyn --- security/device_cgroup.c | 19 +++++-------------- 1 files changed, 5 insertions(+), 14 deletions(-) diff --git a/security/device_cgroup.c b/security/device_cgroup.c index ddd92ce..34a10bf 100644 --- a/security/device_cgroup.c +++ b/security/device_cgroup.c @@ ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: [PATCH 3/3] devcgroup: code cleanup

  1. [PATCH 3/3] devcgroup: code cleanup

    - clean up set_majmin()
    - use simple_strtoul() to parse major/minor

    Signed-off-by: Li Zefan
    Acked-by: Serge Hallyn
    ---
    security/device_cgroup.c | 19 +++++--------------
    1 files changed, 5 insertions(+), 14 deletions(-)

    diff --git a/security/device_cgroup.c b/security/device_cgroup.c
    index ddd92ce..34a10bf 100644
    --- a/security/device_cgroup.c
    +++ b/security/device_cgroup.c
    @@ -188,7 +188,7 @@ static struct cgroup_subsys_state *devcgroup_create(struct cgroup_subsys *ss,
    }
    wh->minor = wh->major = ~0;
    wh->type = DEV_ALL;
    - wh->access = ACC_MKNOD | ACC_READ | ACC_WRITE;
    + wh->access = ACC_MASK;
    list_add(&wh->list, &dev_cgroup->whitelist);
    } else {
    parent_dev_cgroup = cgroup_to_devcgroup(parent_cgroup);
    @@ -250,11 +250,10 @@ static char type_to_char(short type)

    static void set_majmin(char *str, unsigned m)
    {
    - memset(str, 0, MAJMINLEN);
    if (m == ~0)
    - sprintf(str, "*");
    + strcpy(str, "*");
    else
    - snprintf(str, MAJMINLEN, "%u", m);
    + sprintf(str, "%u", m);
    }

    static int devcgroup_seq_read(struct cgroup *cgroup, struct cftype *cft,
    @@ -405,11 +404,7 @@ static ssize_t devcgroup_access_write(struct cgroup *cgroup, struct cftype *cft,
    wh.major = ~0;
    b++;
    } else if (isdigit(*b)) {
    - wh.major = 0;
    - while (isdigit(*b)) {
    - wh.major = wh.major*10+(*b-'0');
    - b++;
    - }
    + wh.major = simple_strtoul(b, &b, 0);
    } else {
    retval = -EINVAL;
    goto out2;
    @@ -425,11 +420,7 @@ static ssize_t devcgroup_access_write(struct cgroup *cgroup, struct cftype *cft,
    wh.minor = ~0;
    b++;
    } else if (isdigit(*b)) {
    - wh.minor = 0;
    - while (isdigit(*b)) {
    - wh.minor = wh.minor*10+(*b-'0');
    - b++;
    - }
    + wh.minor = simple_strtoul(b, &b, 0);
    } else {
    retval = -EINVAL;
    goto out2;
    --
    1.5.4.rc3
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

  2. Re: [PATCH 3/3] devcgroup: code cleanup

    On Tue, 08 Jul 2008 09:51:13 +0800 Li Zefan wrote:

    > @@ -405,11 +404,7 @@ static ssize_t devcgroup_access_write(struct cgroup *cgroup, struct cftype *cft,
    > wh.major = ~0;
    > b++;
    > } else if (isdigit(*b)) {
    > - wh.major = 0;
    > - while (isdigit(*b)) {
    > - wh.major = wh.major*10+(*b-'0');
    > - b++;
    > - }
    > + wh.major = simple_strtoul(b, &b, 0);
    > } else {
    > retval = -EINVAL;
    > goto out2;
    > @@ -425,11 +420,7 @@ static ssize_t devcgroup_access_write(struct cgroup *cgroup, struct cftype *cft,
    > wh.minor = ~0;
    > b++;
    > } else if (isdigit(*b)) {
    > - wh.minor = 0;
    > - while (isdigit(*b)) {
    > - wh.minor = wh.minor*10+(*b-'0');
    > - b++;
    > - }
    > + wh.minor = simple_strtoul(b, &b, 0);


    This is an interface change. Previously we only took decimal input.
    Now, we accept decimal or octal or hex, based upon automagic detection.

    So scripts which were feeding in "010" will now be setting things to eight,
    not to ten.

    Methinks we should do this:

    --- a/security/device_cgroup.c~devcgroup-code-cleanup-fix
    +++ a/security/device_cgroup.c
    @@ -394,7 +394,7 @@ static int devcgroup_update_access(struc
    wh.major = ~0;
    b++;
    } else if (isdigit(*b)) {
    - wh.major = simple_strtoul(b, &b, 0);
    + wh.major = simple_strtoul(b, &b, 10);
    } else {
    return -EINVAL;
    }
    @@ -407,7 +407,7 @@ static int devcgroup_update_access(struc
    wh.minor = ~0;
    b++;
    } else if (isdigit(*b)) {
    - wh.minor = simple_strtoul(b, &b, 0);
    + wh.minor = simple_strtoul(b, &b, 10);
    } else {
    return -EINVAL;
    }
    _

    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

+ Reply to Thread