Author: Stefano Rivera <stef...@rivera.za.net> Branch: Changeset: r73643:17fcf0cc640d Date: 2014-09-21 23:54 -0700 http://bitbucket.org/pypy/pypy/changeset/17fcf0cc640d/
Log: Fix the sandbox pypy now (since b97c7d6f7fd8) checks for executability, when searching for its own executable on startup. Abuse "kind" to maintain extra mode bits, so we can store the executable state in our vfs. diff --git a/pypy/sandbox/pypy_interact.py b/pypy/sandbox/pypy_interact.py --- a/pypy/sandbox/pypy_interact.py +++ b/pypy/sandbox/pypy_interact.py @@ -55,7 +55,7 @@ return Dir({ 'bin': Dir({ - 'pypy-c': RealFile(self.executable), + 'pypy-c': RealFile(self.executable, mode=0111), 'lib-python': RealDir(os.path.join(libroot, 'lib-python'), exclude=exclude), 'lib_pypy': RealDir(os.path.join(libroot, 'lib_pypy'), diff --git a/rpython/translator/sandbox/vfs.py b/rpython/translator/sandbox/vfs.py --- a/rpython/translator/sandbox/vfs.py +++ b/rpython/translator/sandbox/vfs.py @@ -22,7 +22,7 @@ st_size = self.getsize() st_mode = self.kind st_mode |= stat.S_IWUSR | stat.S_IRUSR | stat.S_IRGRP | stat.S_IROTH - if self.kind == stat.S_IFDIR: + if stat.S_ISDIR(self.kind): st_mode |= stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH if self.read_only: st_uid = 0 # read-only files are virtually owned by root @@ -123,8 +123,9 @@ return cStringIO.StringIO(self.data) class RealFile(File): - def __init__(self, path): + def __init__(self, path, mode=0): self.path = path + self.kind |= mode def __repr__(self): return '<RealFile %s>' % (self.path,) def getsize(self): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit