2007-11-16 15:08:57

by Alexey Dobriyan

[permalink] [raw]
Subject: [PATCH 2/4] proc: detect duplicate names on registration

Andrew, please drop procfs-detect-duplicate-names.patch and apply this
instead.
------------
[PATCH] proc: detect duplicate names on registration

From: Zhang Rui <[email protected]>

Print a warning if PDE is registered with a name which already exists in
target directory.

Bug report and a simple fix can be found here:
http://bugzilla.kernel.org/show_bug.cgi?id=8798

[\n fixlet and no undescriptive variable usage --adobriyan]
Signed-off-by: Zhang Rui <[email protected]>
Signed-off-by: Alexey Dobriyan <[email protected]>
---

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

--- a/fs/proc/generic.c
+++ b/fs/proc/generic.c
@@ -518,6 +518,7 @@ static const struct inode_operations proc_dir_inode_operations = {
static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
{
unsigned int i;
+ struct proc_dir_entry *tmp;

i = get_inode_number();
if (i == 0)
@@ -536,6 +537,15 @@ static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp
}

spin_lock(&proc_subdir_lock);
+
+ for (tmp = dir->subdir; tmp; tmp = tmp->next)
+ if (strcmp(tmp->name, dp->name) == 0) {
+ printk(KERN_WARNING "PDE '%s' already registered\n",
+ dp->name);
+ dump_stack();
+ break;
+ }
+
dp->next = dir->subdir;
dp->parent = dir;
dir->subdir = dp;


2007-11-16 16:46:57

by Randy Dunlap

[permalink] [raw]
Subject: Re: [PATCH 2/4] proc: detect duplicate names on registration

On Fri, 16 Nov 2007 18:08:40 +0300 Alexey Dobriyan wrote:

> Andrew, please drop procfs-detect-duplicate-names.patch and apply this
> instead.
> ------------
> [PATCH] proc: detect duplicate names on registration
>
> From: Zhang Rui <[email protected]>
>
> Print a warning if PDE is registered with a name which already exists in
> target directory.
>
> Bug report and a simple fix can be found here:
> http://bugzilla.kernel.org/show_bug.cgi?id=8798
>
> [\n fixlet and no undescriptive variable usage --adobriyan]
> Signed-off-by: Zhang Rui <[email protected]>
> Signed-off-by: Alexey Dobriyan <[email protected]>
> ---
>
> fs/proc/generic.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> --- a/fs/proc/generic.c
> +++ b/fs/proc/generic.c

> @@ -536,6 +537,15 @@ static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp
> }
>
> spin_lock(&proc_subdir_lock);
> +
> + for (tmp = dir->subdir; tmp; tmp = tmp->next)
> + if (strcmp(tmp->name, dp->name) == 0) {
> + printk(KERN_WARNING "PDE '%s' already registered\n",
> + dp->name);
> + dump_stack();
> + break;
> + }
> +

Please just s/PDE/proc_dir_entry/.

---
~Randy