You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
882 B

diff --git a/jinja2/bccache.py b/jinja2/bccache.py
index 09ff845..c31a905 100644
--- a/jinja2/bccache.py
+++ b/jinja2/bccache.py
@@ -16,6 +16,7 @@
"""
from os import path, listdir
import os
+import stat
import sys
import errno
import marshal
@@ -230,6 +231,14 @@ class FileSystemBytecodeCache(BytecodeCache):
if e.errno != errno.EEXIST:
raise
+ if os.lstat(actual_dir).st_uid != os.getuid():
+ raise RuntimeError('Someone else owns temp directory with your '
+ 'uid. You need to explicitly provide another.')
+
+ if stat.S_IMODE(os.lstat(actual_dir).st_mode) != 448:
+ raise RuntimeError('Bad permission flags on temp directory, '
+ 'shoud be 0700. You need to fix this.')
+
return actual_dir
def _get_cache_filename(self, bucket):