# HG changeset patch # User Matt Johnston # Date 1425053642 -28800 # Node ID da769023bf0892b2dad6cc019d153bcc930bee4e # Parent f2838211f6ec1540bee494ca97245ef4a0d540af Fix race setting umask diff -r f2838211f6ec -r da769023bf08 web/secure.py --- a/web/secure.py Thu Jan 29 22:55:24 2015 +0800 +++ b/web/secure.py Sat Feb 28 00:14:02 2015 +0800 @@ -56,11 +56,10 @@ def setup_csrf(): NONCE_SIZE=16 global _csrf_fd, _csrf_key - _csrf_fd = open('%s/csrf.dat' % config.DATA_PATH, 'r+') + _csrf_fd = os.fdopen(os.open('%s/csrf.dat' % config.DATA_PATH, os.O_RDWR | os.O_CREAT, 0600), 'r+') try: fcntl.lockf(_csrf_fd, fcntl.LOCK_EX | fcntl.LOCK_NB) - os.fchmod(_csrf_fd.fileno(), 0600) _csrf_fd.write("%d-%s" % (os.getpid(), binascii.hexlify(os.urandom(NONCE_SIZE)))) _csrf_fd.flush() _csrf_fd.seek(0)