MTP driver: Workaround for LibMTP no longer returning device serial numbers on some systems

Fixes #2810 (MTP Kindle Serial not detected)
This commit is contained in:
Kovid Goyal 2025-07-16 21:57:09 +05:30
parent b67e54744a
commit 1ce22c9aea
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -265,10 +265,13 @@ Device_init(Device *self, PyObject *args, PyObject *kwds)
if (self->model_name == NULL) { self->model_name = Py_None; Py_INCREF(Py_None); } if (self->model_name == NULL) { self->model_name = Py_None; Py_INCREF(Py_None); }
if (serial_number != NULL) { if (serial_number != NULL) {
self->serial_number = PyUnicode_FromString(serial_number); if (serial_number[0]) self->serial_number = PyUnicode_FromString(serial_number);
free(serial_number); free(serial_number);
} }
if (self->serial_number == NULL) { self->serial_number = Py_None; Py_INCREF(Py_None); } if (self->serial_number == NULL) {
self->serial_number = usb_serialnum == NULL ? Py_None : usb_serialnum;
Py_INCREF(self->serial_number);
}
if (device_version != NULL) { if (device_version != NULL) {
self->device_version = PyUnicode_FromString(device_version); self->device_version = PyUnicode_FromString(device_version);