[pypy-issue] Issue #2388: Sandbox broken in 5.4.0 os.access() called with float mode (pypy/pypy)

Stefano Rivera issues-reply at bitbucket.org
Wed Aug 31 21:03:44 EDT 2016


New issue 2388: Sandbox broken in 5.4.0 os.access() called with float mode
https://bitbucket.org/pypy/pypy/issues/2388/sandbox-broken-in-540-osaccess-called-with

Stefano Rivera:

The sandbox fails to get to a REPL in 5.4.0, it seems something is making a broken call to `os.access()` with a floating point `mode` argument:

```
[sandlib:call] ll_os.ll_os_getenv('PYPY_GENERATIONGC_NURSERY')
[sandlib:result] None
[sandlib:call] ll_os.ll_os_getenv('PYPY_GC_DEBUG')
[sandlib:result] None
[sandlib:call] ll_os.ll_os_envitems()
[sandlib:result] []
[sandlib:call] ll_os.ll_os_stat('/bin/pypy-c')
[sandlib:vpath] '/bin/pypy-c' => <RealFile /usr/lib/pypy-sandbox/x86_64-linux-gnu/pypy-c-sandbox>
[sandlib:result] posix.stat_result(st...ctime=0)
[sandlib:call] ll_os.ll_os_access('/bin/pypy-c', 1.0)
[sandlib:vpath] '/bin/pypy-c' => <RealFile /usr/lib/pypy-sandbox/x86_64-linux-gnu/pypy-c-sandbox>
Traceback (most recent call last):
  File "/usr/bin/pypy-sandbox", line 12, in <module>
    execfile(fn)
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/pypy_interact.py", line 133, in <module>
    main()
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/pypy_interact.py", line 128, in main
    sandproc.interact()
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/sandlib.py", line 325, in interact
    returncode = self.handle_until_return()
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/sandlib.py", line 252, in handle_until_return
    write_exception(child_stdin, e, tb)
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/sandlib.py", line 249, in handle_until_return
    answer, resulttype = self.handle_message(fnname, *args)
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/sandlib.py", line 288, in handle_message
    return handler(*args), resulttype
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/sandlib.py", line 457, in do_ll_os__ll_os_access
    return node.access(mode)
  File "/usr/lib/python2.7/dist-packages/pypy/sandbox/rpython/translator/sandbox/vfs.py", line 47, in access
    return (e_mode & mode) == mode
TypeError: unsupported operand type(s) for &: 'int' and 'float'
```




More information about the pypy-issue mailing list