Fix SF #762455, segfault when sys.stdout is changed in getattr
Will backport.
diff --git a/Python/ceval.c b/Python/ceval.c
index 07862d0..035520a 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -1501,6 +1501,11 @@
 					err = -1;
 				}
 			}
+			/* PyFile_SoftSpace() can exececute arbitrary code
+			   if sys.stdout is an instance with a __getattr__.
+			   If __getattr__ raises an exception, w will
+			   be freed, so we need to prevent that temporarily. */
+			Py_XINCREF(w);
 			if (w != NULL && PyFile_SoftSpace(w, 0))
 				err = PyFile_WriteString(" ", w);
 			if (err == 0)
@@ -1528,6 +1533,7 @@
 			    else
 			    	PyFile_SoftSpace(w, 1);
 			}
+			Py_XDECREF(w);
 			Py_DECREF(v);
 			Py_XDECREF(stream);
 			stream = NULL;