diff --git a/src/calibre/devices/usbobserver/usbobserver.c b/src/calibre/devices/usbobserver/usbobserver.c index 8165332cd3..7268380e63 100644 --- a/src/calibre/devices/usbobserver/usbobserver.c +++ b/src/calibre/devices/usbobserver/usbobserver.c @@ -283,7 +283,11 @@ usbobserver_get_mounted_filesystems(PyObject *self, PyObject *args) { for (i = 0 ; i < num; i++) { val = PyUnicode_FromString(buf[i].f_mntonname); - if (!val) { NUKE(ans); goto end; } + if (!val) { + PyErr_Clear(); + val = PyUnicode_DecodeLocale(buf[i].f_mntonname, "surrogateescape"); + if (!val) { NUKE(ans); goto end; } + } if (PyDict_SetItemString(ans, buf[i].f_mntfromname, val) != 0) { NUKE(ans); NUKE(val); goto end; } NUKE(val); }