A device name is display-only, but three code paths decode it strictly and raise UnicodeDecodeError, aborting the whole operation: - handle_device_discovery: crashes 'solaar pair' during Bolt discovery - BoltReceiver.device_codename: crashes 'solaar show' and 'solaar unpair' - get_friendly_name: crashes 'solaar show' after device enumeration Observed in the wild with an MX Master 3S whose user-writable friendly name field contained 0xc3 0x23 (invalid UTF-8). The Bolt receiver copies this name at pairing time, so the bad bytes surface from both the receiver registers and the live HID++ 2.0 feature, making the device impossible to pair, list, or unpair with Solaar. Decode with errors='replace' so a garbage name renders as replacement characters instead of making the device unusable. |
||
|---|---|---|
| .. | ||
| hid_parser | ||
| hidapi | ||
| keysyms | ||
| logitech_receiver | ||
| solaar | ||