Google luky.org euqset.org

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

[PATCH] prohibit slash in proc directory entry names


On Wed, 2005-01-05 at 02:01, Andrew Morton wrote:
> Olaf Hering <olh@xxxxxxx> wrote:
> >
> > A few users of request_irq pass a string with '/'.
> >  As a result, ls -l /proc/irq/*/* will fail to list these entries.
> 
> hrm, interesting.  So how do these entries appear in /proc?  Do they
> actually have slashes in them?
> 
> I get the feeling that something somewhere should be detecting this and
> should be propagating an error back.

proc_create() needs to check that the name of an entry to be created
does not contain a '/' character.

To test, I hacked the ibmveth driver to try to call request_irq with a
bogus "foo/bar" devname.  The creation of the /proc/irq/1234/xxx entry
silently fails, as intended.  Perhaps the irq code should be made to
check for the failure.

Signed-off-by: Nathan Lynch <nathanl@xxxxxxxxxxxxxx>

Index: 2.6.10/fs/proc/generic.c
===================================================================
--- 2.6.10.orig/fs/proc/generic.c	2004-12-24 21:35:40.000000000 +0000
+++ 2.6.10/fs/proc/generic.c	2005-01-05 18:44:56.000000000 +0000
@@ -551,6 +551,11 @@
 
 	if (!(*parent) && xlate_proc_name(name, parent, &fn) != 0)
 		goto out;
+
+	/* At this point there must not be any '/' characters beyond *fn */
+	if (strchr(fn, '/'))
+		goto out;
+
 	len = strlen(fn);
 
 	ent = kmalloc(sizeof(struct proc_dir_entry) + len + 1, GFP_KERNEL);


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


$B$3$N>pJs$,$"$J$?$NC5$7$F$$?$b$N$+$I$&$+A*Br$7$F$/$@$5$!#(B
yes/$B$^$5$K$3$l$@!*(B   no/$B0c$&$J$!(B   part/$B0lIt8+$D$+$C$?(B   try/$B$3$l$G;n$7$F$_$k(B

$B$"$J$?$,C5$7$F$$?>pJs$O$I$N$h$&$J$3$H$+!"$4<+M3$K5-F~2<$5$!#FC$K!V$^$5$K$3$l$@!*!W$H8@$&>l9g$O5-F~$r$*4j$$7$^$9!#(B
$BNc(B:$B!VJ#?t$N%^%7%s$+$i(BCATV$B7PM3$G(Bipmasquerade$B$rMxMQ$7$F(BWeb$B$r;2>H$7$?$>l9g$N@_Dj$K$D$$F!W(B
Follow-Ups: References: