diff options
author | Nat Goodspeed <nat@lindenlab.com> | 2024-07-18 14:24:36 -0400 |
---|---|---|
committer | Nat Goodspeed <nat@lindenlab.com> | 2024-07-18 14:24:36 -0400 |
commit | cd64842e338fb216f0772e371278c56b921f6f87 (patch) | |
tree | 35efd500eb1eb08376799c2ba139841979e74f64 /scripts/code_tools | |
parent | f2f0fa7fd0efc221f1358dd4e440b5d51a5fb8b4 (diff) |
Improve viewer's defense against `LLEventAPI` failures.
`LLEventAPI` is specifically intended to allow a LEAP plugin, or a Lua script,
to access certain viewer functionality. Errors in external code like that
cannot be addressed during viewer development. Any code path that allows
external code in any form to crash the viewer opens up a potential abuse
vector, if a trusting user runs external code from an untrustworthy source.
`LLDispatchListener` reports exceptions back to its invoker, if the invoker
provides a "reply" `LLEventPump` name. Absent "reply", though,
`LLDispatchListener` is documented to let any such exception propagate. That
behavior may be okay for internal use, but in the case of the `LLEventAPI`
subclass, it veers into the abuse scenario described above.
Make `LLEventAPI` ensure that any exception propagating from `LLDispatchListener`
is caught and logged, but not propagated.
Also enrich error reporting for the "batch" `LLDispatchListener` operations.
Diffstat (limited to 'scripts/code_tools')
0 files changed, 0 insertions, 0 deletions