Messages in this thread Patch in this message | | | Date | Fri, 13 Jan 2006 22:07:33 -0500 | From | Chuck Ebbert <> | Subject | Re: [patch] kobject: don't oops on null kobject.name |
| |
In-Reply-To: <20060114000246.GA7549@kroah.com>
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:
--- 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().
-- Chuck Currently reading: _Olympos_ by Dan Simmons - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |