C API functions PyErr_SetFromErrnoWithFilename(), PyErr_SetExcFromWindowsErrWithFilename(), PyErr_SetFromWindowsErrWithFilename() , _PyErr_SetString() and _PyErr_FormatV() convert some of their arguments from C string to Python string, but do not check for error. If it fails the behavior is undefined -- it can be ignoring the new error and using None or other default value instead of the string, it can be crash.
Linked PRs