@@ -335,15 +335,15 @@ flush_std_files(void)
335335 PyObject * ferr = PySys_GetObject ("stderr" );
336336 PyObject * tmp ;
337337
338- if (fout != NULL ) {
338+ if (fout != NULL && fout != Py_None ) {
339339 tmp = PyObject_CallMethod (fout , "flush" , "" );
340340 if (tmp == NULL )
341341 PyErr_Clear ();
342342 else
343343 Py_DECREF (tmp );
344344 }
345345
346- if (ferr != NULL ) {
346+ if (ferr != NULL || ferr != Py_None ) {
347347 tmp = PyObject_CallMethod (ferr , "flush" , "" );
348348 if (tmp == NULL )
349349 PyErr_Clear ();
@@ -693,6 +693,8 @@ initsite(void)
693693 m = PyImport_ImportModule ("site" );
694694 if (m == NULL ) {
695695 f = PySys_GetObject ("stderr" );
696+ if (f == NULL || f == Py_None )
697+ return ;
696698 if (Py_VerboseFlag ) {
697699 PyFile_WriteString (
698700 "'import site' failed; traceback:\n" , f );
@@ -900,7 +902,7 @@ PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags
900902 if (fp == stdin ) {
901903 /* Fetch encoding from sys.stdin */
902904 v = PySys_GetObject ("stdin" );
903- if (! v )
905+ if (v == NULL || v == Py_None )
904906 return -1 ;
905907 oenc = PyObject_GetAttrString (v , "encoding" );
906908 if (!oenc )
@@ -1293,7 +1295,10 @@ PyErr_Display(PyObject *exception, PyObject *value, PyObject *tb)
12931295 int err = 0 ;
12941296 PyObject * f = PySys_GetObject ("stderr" );
12951297 Py_INCREF (value );
1296- if (f == NULL ) {
1298+ if (f == Py_None ) {
1299+ /* pass */
1300+ }
1301+ else if (f == NULL ) {
12971302 _PyObject_Dump (value );
12981303 fprintf (stderr , "lost sys.stderr\n" );
12991304 }
0 commit comments