From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Drake Date: Mon, 15 Oct 2007 12:29:39 +0000 Subject: usb_id segfaulting on 2.6.23 Message-Id: <47135D33.7080805@gentoo.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug@vger.kernel.org Hi, Since upgrading to 2.6.23, usb_id is segfaulting when dealing with my input devices. I'm using udev-116. I can get an instant segfault simply by replugging my keyboard. I have dug around a bit. The segfault happens inside usb_id, see the "fallback" section. It reaches here: dbg("No USB vendor information available\n"); sprintf(vendor_str,"0000"); then a few lines later: set_str(vendor_str,usb_vendor, sizeof(vendor_str) - 1); usb_vendor is NULL. set_str does various string manipulations with this NULL pointer which causes the segfault. I suggest fixing this by replacing the sprintf line with: usb_vendor = "0000"; The same bug exists a few lines below with the USB model handling. Now for what actually caused the change in behaviour: the devpath passed to usb_id has changed between 2.6.22 and 2.6.23. In 2.6.22, it was /class/input/input4/event2 and I would get this output: > # /lib/udev/usb_id /class/input/input4/event2 > Microsoft_Microsoft_Keyboard_with_Fingerprint_Reader_{3A1B506A-BB77-444C-851B-C424997B2763} > ID_VENDOR=Microsoft > ID_MODEL=Microsoft_Keyboard_with_Fingerprint_Reader > ID_REVISION00 > ID_SERIAL=Microsoft_Microsoft_Keyboard_with_Fingerprint_Reader_{3A1B506A-BB77-444C-851B-C424997B2763} > ID_SERIAL_SHORT={3A1B506A-BB77-444C-851B-C424997B2763} > ID_TYPE=hid > ID_BUS=usb In 2.6.23 the devpath now provided to usb_id is /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2:1.0/input/input13/event2 After applying my segfault fixes I get the following from usb_id: > # /lib/udev/usb_id /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-21.0/input/input13/event2 > 0000_0000 Why has the devpath changed? Is this a kernel bug for breaking userspace compat? Or should usb_id just be adapted to be able to handle both types of devpath? Thanks! Daniel ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/ _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel