lkml.org 
[lkml]   [2007]   [Jan]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 57/59] sysctl: allow sysctl_perm to be called from outside of sysctl.c
    Date
    From: Eric W. Biederman <ebiederm@xmission.com> - unquoted

    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    include/linux/sysctl.h | 2 ++
    kernel/sysctl.c | 10 +++++-----
    2 files changed, 7 insertions(+), 5 deletions(-)

    diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
    index 81ee9ea..20c23b5 100644
    --- a/include/linux/sysctl.h
    +++ b/include/linux/sysctl.h
    @@ -924,8 +924,10 @@ enum
    #include <linux/list.h>

    /* For the /proc/sys support */
    +struct ctl_table;
    extern struct ctl_table_header *sysctl_head_next(struct ctl_table_header *prev);
    extern void sysctl_head_finish(struct ctl_table_header *prev);
    +extern int sysctl_perm(struct ctl_table *table, int op);

    extern void sysctl_init(void);

    diff --git a/kernel/sysctl.c b/kernel/sysctl.c
    index ca2831a..ec5e4a1 100644
    --- a/kernel/sysctl.c
    +++ b/kernel/sysctl.c
    @@ -1154,7 +1154,7 @@ asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
    #endif /* CONFIG_SYSCTL_SYSCALL */

    /*
    - * ctl_perm does NOT grant the superuser all rights automatically, because
    + * sysctl_perm does NOT grant the superuser all rights automatically, because
    * some sysctl variables are readonly even to root.
    */

    @@ -1169,7 +1169,7 @@ static int test_perm(int mode, int op)
    return -EACCES;
    }

    -static inline int ctl_perm(ctl_table *table, int op)
    +int sysctl_perm(ctl_table *table, int op)
    {
    int error;
    error = security_sysctl(table, op);
    @@ -1196,7 +1196,7 @@ repeat:
    if (n == table->ctl_name) {
    int error;
    if (table->child) {
    - if (ctl_perm(table, 001))
    + if (sysctl_perm(table, 001))
    return -EPERM;
    name++;
    nlen--;
    @@ -1225,7 +1225,7 @@ int do_sysctl_strategy (ctl_table *table,
    op |= 004;
    if (newval)
    op |= 002;
    - if (ctl_perm(table, op))
    + if (sysctl_perm(table, op))
    return -EPERM;

    if (table->strategy) {
    @@ -1495,7 +1495,7 @@ static ssize_t do_rw_proc(int write, struct file * file, char __user * buf,
    goto out;
    error = -EPERM;
    op = (write ? 002 : 004);
    - if (ctl_perm(table, op))
    + if (sysctl_perm(table, op))
    goto out;

    /* careful: calling conventions are nasty here */
    --
    1.4.4.1.g278f
    -
    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/

    \
     
     \ /
      Last update: 2007-01-16 19:07    [W:0.022 / U:37.284 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site