Tighten up eval() scope in show result subcommand
authorJeremy Stanley <fungi@yuggoth.org>
Tue, 24 Dec 2019 21:33:37 +0000 (21:33 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Sat, 28 Dec 2019 20:40:11 +0000 (20:40 +0000)
commit13ad9d33469c0ad12d0de34744cb30cc00bdba32
tree391fca1b5f5cf9c158095864c1f4520beaf48e3a
parent64dcfbed1d763781934f7d968318bf15a12d6844
Tighten up eval() scope in show result subcommand

In order to slightly reduce risk but mostly to increase convenience
with the `show result` administrative subcommand, replace its eval()
invocation's globals with just the mudpy module namespace and the
actor's universe pointer as "universe" (this way exploratory
expressions don't need to do things relative to actor.universe all
the time). Extend the selftest to confirm these are present and that
any attempts to access other globals and locals within the
command.show() function's scope raise an exception.

Whitelist this intentional use of eval() for bandit analysis.
mudpy/command.py
mudpy/tests/selftest.py