Re: [PATCH] don't allow / in class device names

From: Greg KH
Date: Fri Feb 13 2004 - 15:40:18 EST


On Fri, Feb 13, 2004 at 10:27:55AM -0800, Stephen Hemminger wrote:
>
> > [0 tv@tao /sys/class/misc]$ uname -a
> > Linux tao 2.6.2-rc2 #6 Mon Jan 26 10:54:50 EET 2004 i686 GNU/Linux
> > [0 tv@tao /sys/class/misc]$ echo *
> > intermezzo net/tun psaux rtc uinput
> > [0 tv@tao /sys/class/misc]$
> >
> > Seems like that's all because of this:
> >
> > static struct miscdevice tun_miscdev = {
> > .minor = TUN_MINOR,
> > .name = "net/tun",
> > .fops = &tun_fops
> > };
> >
> > Name is apparently meant to be a filename, not a path.
> > Don't know what should be done to it; maybe
> >
> > static struct miscdevice tun_miscdev = {
> > .minor = TUN_MINOR,
> > .name = "tun",
> > .fops = &tun_fops,
> > .devfs_name = "misc/net/tun",
> > };
> >
> > But I havent tried that out.
> >
> > I'd suggest this, to flush out all the problems. Later,
> > it can be changed to return -EINVAL or BUG_ON.
> >
> > --- 1.26/drivers/char/misc.c Thu Jan 15 13:05:56 2004
> > +++ edited/misc.c Fri Feb 13 19:35:45 2004
> > @@ -212,6 +212,9 @@
> > int misc_register(struct miscdevice * misc)
> > {
> > struct miscdevice *c;
> > +
> > + if (misc->name && strchr(misc->name, '/'))
> > + printk("%s: name contains slash when registering %s.\n", __func__, misc->name);
> >
> > down(&misc_sem);
> > list_for_each_entry(c, &misc_list, list) {
> >
> Don't fix it just for misc_register, the fix needs to go into class_device.

No, the "fix" is to just not do this in the driver. I'm not going to
apply this patch, sorry.

thanks,

greg k-h
-
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/