diff options
-rw-r--r-- | src/dmidecodemodule.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/dmidecodemodule.c b/src/dmidecodemodule.c index 8db99cb..b31c002 100644 --- a/src/dmidecodemodule.c +++ b/src/dmidecodemodule.c @@ -659,12 +659,17 @@ static PyObject *dmidecode_set_dev(PyObject * self, PyObject * arg) static PyObject *dmidecode_set_pythonxmlmap(PyObject * self, PyObject * arg) { - if(PyBytes_Check(arg)) { + char *fname = NULL; + + if (PyUnicode_Check(arg)) { + fname = PyUnicode_AsUTF8(arg); + } else if (PyBytes_Check(arg)) { + fname = PyBytes_AsString(arg); + } + if (fname) { struct stat fileinfo; - char *fname = PyBytes_AsString(arg); memset(&fileinfo, 0, sizeof(struct stat)); - if( stat(fname, &fileinfo) != 0 ) { PyReturnError(PyExc_IOError, "Could not access the file '%s'", fname); } |