Hi, seems that using some strange usb devices with really bogus serial numbers usb_id creates links with junk strings in it:
/dev/disk/by-id/usb-TSSTcorp_BDDVDW_SE-506AB_㡒䍌䜶䉗ぁㄴ㌴†ँ-0:0 Initially was believed that usb_id is to blame, then the kernel, but it turns out that really the usb cd/dvd drive has this bogus serial number: output from dmesg: [ 538.200160] usb 1-2: new high-speed USB device number 5 using ehci_hcd [ 538.335067] usb 1-2: New USB device found, idVendor=0e8d, idProduct=1956 [ 538.335080] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [ 538.335089] usb 1-2: Product: MT1956 [ 538.335097] usb 1-2: Manufacturer: MediaTek Inc [ 538.335105] usb 1-2: SerialNumber: \xffffffe3\xffffffa1\xffffff92\xffffffe4\xffffff8d\xffffff8c\xffffffe4\xffffff9c\xffffffb6\xffffffe4\xffffff89\xffffff97\xffffffe3\xffffff81\xffffff81\xffffffe3\xffffff84\xffffffb4\xffffffe3\xffffff8c\xffffffb4\xffffffe2\xffffff80\xffffffa0\xffffffe0\xffffffa4\xffffff81 [ 538.337540] scsi6 : usb-storage 1-2:1.0 [ 539.341385] scsi 6:0:0:0: CD-ROM TSSTcorp BDDVDW SE-506AB TS00 PQ: 0 ANSI: 0 [ 539.354240] sr0: scsi3-mmc drive: 0x/24x writer dvd-ram cd/rw xa/form2 cdda tray [ 539.354777] sr 6:0:0:0: Attached scsi CD-ROM sr0 [ 539.355122] sr 6:0:0:0: Attached scsi generic sg2 type 5 output of command: udevadm test-builtin usb_id /block/sr0 udev_device_new_from_syspath: device 0x9c84d58 has devpath '/devices/pci0000:00/0000:00:1d.7/usb1/1-2' udev_builtin_add_property: ID_VENDOR=TSSTcorp udev_builtin_add_property: ID_VENDOR_ENC=TSSTcorp udev_builtin_add_property: ID_VENDOR_ID=0e8d udev_builtin_add_property: ID_MODEL=BDDVDW_SE-506AB udev_builtin_add_property: ID_MODEL_ENC=BDDVDW\x20SE-506AB\x20 udev_builtin_add_property: ID_MODEL_ID=1956 udev_builtin_add_property: ID_REVISION=TS00 udev_builtin_add_property: ID_SERIAL=TSSTcorp_BDDVDW_SE-506AB_㡒䍌䜶䉗ぁㄴ㌴†ँ-0:0 udev_builtin_add_property: ID_SERIAL_SHORT=㡒䍌䜶䉗ぁㄴ㌴†ँ udev_builtin_add_property: ID_TYPE=cd udev_builtin_add_property: ID_INSTANCE=0:0 udev_builtin_add_property: ID_BUS=usb udev_builtin_add_property: ID_USB_INTERFACES=:080250: udev_builtin_add_property: ID_USB_INTERFACE_NUM=00 udev_builtin_add_property: ID_USB_DRIVER=usb-storage Wouldn't be a good idea to add a string validator for the serial number and if it doesn't fall into the valid options, then just set the serial to 000000000000000000000 or something like this? I'm not sure, but don't think from the usb_id point the serial matters too much. Was thinking that this function: static bool valid_string(const char *serial) { const char *s; if (!serial) return false; for (s = serial; *s != '\0'; s++) { if ((*s >= 'a' && *s <= 'z') || (*s >= 'A' && *s <= 'Z') || (*s >= '0' && *s <= '9') || *s == '-' || *s == '_') continue; else return false; } return true; } Could be added to usb_id and then use it to validated serial_str and serial. -- Robert Milasan L3 Support Engineer SUSE Linux (http://www.suse.com) email: rmila...@suse.com GPG fingerprint: B6FE F4A8 0FA3 3040 3402 6FE7 2F64 167C 1909 6D1A _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel