PyString_AsString is permissive and accepts unicode strings.
Replace it with PyUnicode_AsString when the argument is known to be a str.
diff --git a/Objects/stringobject.c b/Objects/stringobject.c
index ae2a977..d341436 100644
--- a/Objects/stringobject.c
+++ b/Objects/stringobject.c
@@ -3273,7 +3273,7 @@
if (!result)
return NULL;
- buf = PyString_AsString(result);
+ buf = PyUnicode_AsString(result);
if (!buf) {
Py_DECREF(result);
return NULL;
@@ -3284,7 +3284,7 @@
PyErr_BadInternalCall();
return NULL;
}
- llen = PyString_Size(result);
+ llen = PyUnicode_GetSize(result);
if (llen > INT_MAX) {
PyErr_SetString(PyExc_ValueError,
"string too large in _PyString_FormatLong");