2010-12-16 20:32:56

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH] proc: warn if registering world writeable files

Signed-off-by: Alexey Dobriyan <[email protected]>
---

fs/proc/generic.c | 1 +
1 file changed, 1 insertion(+)

--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -623,6 +623,7 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
memcpy(((char *) ent) + sizeof(struct proc_dir_entry), fn, len + 1);
ent->name = ((char *) ent) + sizeof(*ent);
ent->namelen = len;
+ WARN_ON(S_ISREG(mode) && (mode & S_IWOTH));
ent->mode = mode;
ent->nlink = nlink;
atomic_set(&ent->count, 1);


2010-12-16 21:26:37

by Dave Jones

[permalink] [raw]
Subject: Re: [PATCH] proc: warn if registering world writeable files

On Thu, Dec 16, 2010 at 10:32:17PM +0200, Alexey Dobriyan wrote:
> Signed-off-by: Alexey Dobriyan <[email protected]>
> ---
>
> fs/proc/generic.c | 1 +
> 1 file changed, 1 insertion(+)
>
> --- a/fs/proc/generic.c
> +++ b/fs/proc/generic.c
> @@ -623,6 +623,7 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
> memcpy(((char *) ent) + sizeof(struct proc_dir_entry), fn, len + 1);
> ent->name = ((char *) ent) + sizeof(*ent);
> ent->namelen = len;
> + WARN_ON(S_ISREG(mode) && (mode & S_IWOTH));
> ent->mode = mode;
> ent->nlink = nlink;
> atomic_set(&ent->count, 1);

Not sure about this. For the reason I mentioned in the checkpatch diff
that this is "usually" a problem. There may be some use cases where
it may actually be ok.

(I'm having a hard time thinking up a justification though tbh)

Dave

2010-12-16 22:05:08

by Alexey Dobriyan

[permalink] [raw]
Subject: Re: [PATCH] proc: warn if registering world writeable files

On Thu, Dec 16, 2010 at 04:26:10PM -0500, Dave Jones wrote:
> On Thu, Dec 16, 2010 at 10:32:17PM +0200, Alexey Dobriyan wrote:
> > + WARN_ON(S_ISREG(mode) && (mode & S_IWOTH));
> > ent->mode = mode;
> > ent->nlink = nlink;
> > atomic_set(&ent->count, 1);
>
> Not sure about this. For the reason I mentioned in the checkpatch diff
> that this is "usually" a problem. There may be some use cases where
> it may actually be ok.
>
> (I'm having a hard time thinking up a justification though tbh)

Me too.

If it's for quick debugging, one can reassign ->mode after registering and
escape the warning.