Create ~/.pypirc securely (#13512).
There was a window between the write and the chmod where the user’s
password would be exposed, depending on default permissions. Philip
Jenvey’s patch fixes it.
diff --git a/Lib/distutils/config.py b/Lib/distutils/config.py
index afa403f..9d8b30e 100644
--- a/Lib/distutils/config.py
+++ b/Lib/distutils/config.py
@@ -42,7 +42,7 @@
def _store_pypirc(self, username, password):
"""Creates a default .pypirc file."""
rc = self._get_rc_file()
- f = open(rc, 'w')
+ f = os.fdopen(os.open(rc, os.O_CREAT | os.O_WRONLY, 0600), 'w')
try:
f.write(DEFAULT_PYPIRC % (username, password))
finally: