Re: [patch] kobject: don't oops on null kobject.name
From: Greg KH
Date: Fri Jan 13 2006 - 22:47:33 EST
On Fri, Jan 13, 2006 at 10:07:33PM -0500, Chuck Ebbert wrote:
> In-Reply-To: <20060114000246.GA7549@xxxxxxxxx>
>
> On Fri, 13 Jan 2006, Greg KH wrote:
>
> > Hm, I looked at the only user of kobjects in the kernel that I know of
> > that doesn't use sysfs (the cdev code) and even it sets the kobject name
> > to something sane, so I think we should be safe with this.
>
> Well, something is still wrong.
>
> I applied your patch to prevent registration of objects with null names on
> top of my patch, then applied this to see if my test still triggered, and
> the message was printed:
What was the message? What traceback?
So, I think the point is that it isn't a kobject_add() issue, right?
>
>
> --- 2.6.15a.orig/lib/kobject.c
> +++ 2.6.15a/lib/kobject.c
> @@ -72,8 +72,10 @@ static int get_kobj_path_length(struct k
> * Add 1 to strlen for leading '/' of each level.
> */
> do {
> - if (kobject_name(parent) == NULL)
> + if (kobject_name(parent) == NULL) {
> + printk("get_kobj_path_length: encountered NULL name\n");
> return 0;
> + }
> length += strlen(kobject_name(parent)) + 1;
> parent = parent->parent;
> } while (parent);
>
>
> To reproduce:
>
> Start with vanilla 2.6.15 and apply the three patches, which I called:
>
> kobject_dont_register_null_name.patch <- my original
> kobject_handle_null_object_name.patch <- Greg's
> kobject_debug_null_path.patch <- included above
>
> On a machine with an ATAPI CD-ROM, boot with "hdx=ide-scsi" where
> hdx is the CD-ROM's drivename. Then try to mount a CD:
>
> mount -t iso9660 /dev/hdx /mnt/cdrom
>
> Note that hdx is being controlled by ide-scsi so this should fail. You
> will see the message from my new patch print in the kernel log.
>
> NOTE: This won't happen on 2.6.15-current because
> fs/super.c::kill_block_super() no longer calls kobject_uevent().
So everything's fixed and we don't have to worry about it anymore :)
Seriously, I agree, we still need to fix it for -stable.
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/