Kaydet (Commit) c3a87b8d authored tarafından Hye-Shik Chang's avatar Hye-Shik Chang

Bug #920575: Add a workaround for GNU libc nl_langinfo()'s returning NULL.

(Reported by Matthias Klose)
üst 56d7913b
......@@ -193,6 +193,9 @@ Core and builtins
Extension modules
-----------------
- Bug #920575: A problem that _locale module segfaults on
nl_langinfo(ERA) caused by GNU libc's illegal NULL return is fixed.
- array objects now support the copy module. Also, their resizing
scheme has been updated the same as for list objects. The improves
the performance (speed and memory usage) of append() operations.
......
......@@ -592,8 +592,12 @@ PyLocale_nl_langinfo(PyObject* self, PyObject* args)
}
#endif
for (i = 0; langinfo_constants[i].name; i++)
if (langinfo_constants[i].value == item)
return PyString_FromString(nl_langinfo(item));
if (langinfo_constants[i].value == item) {
/* Check NULL as a workaround for GNU libc's returning NULL
instead of an empty string for nl_langinfo(ERA). */
const char *result = nl_langinfo(item);
return PyString_FromString(result != NULL ? result : "");
}
PyErr_SetString(PyExc_ValueError, "unsupported langinfo constant");
return NULL;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment