diff options
Diffstat (limited to 'Python/import.c')
-rw-r--r-- | Python/import.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Python/import.c b/Python/import.c index 8195bad..2ef6aec 100644 --- a/Python/import.c +++ b/Python/import.c @@ -1247,8 +1247,15 @@ find_module(char *fullname, char *subname, PyObject *path, char *buf, Py_ssize_t size; if (!v) return NULL; - if (PyObject_AsCharBuffer(v, &base, &size) < 0) - return NULL; + if (PyUnicode_Check(v)) { + v = _PyUnicode_AsDefaultEncodedString(v, NULL); + if (v == NULL) + return NULL; + } + if (!PyString_Check(v)) + continue; + base = PyString_AS_STRING(v); + size = PyString_GET_SIZE(v); len = size; if (len + 2 + namelen + MAXSUFFIXSIZE >= buflen) { continue; /* Too long */ |