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");