Comments (9)
It was broken all the time in vanilla LB. I discovered it (See PR 309 in LB2) and kunitoki patched it in LB3.
I can't give you a deep explanation but untrusted code should never be able to modify the metatable of a userdata type. Even if it is just for the sake of __gc
.
Edit Source: LuaJIT/LuaJIT#601 (comment)
from luabridge3.
Is there a way to provide read-only access to the metatable?
from luabridge3.
FWIW: the code I'm looking at is forwarding calls to __index
and __newindex
. Nothing to do with __gc
. Is there some safer way you could suggest to make this possible>
from luabridge3.
We could try just preventing __newindex in class metatables, but i don't know about any possible side effects or in general other implications we could introduce, i might need to test this a bit more.
from luabridge3.
I'm wondering if the LuaBridge library should do anything (beyond making hide mts optional as it does now.) If I can provide forwarding functions, that might be all that's needed.
from luabridge3.
On thing that occurs to me is that it might be nice if this setting were available on a per-Lua state basis instead of global. In my environment I could imagine it being something that the user (or configuration) authorizes.
from luabridge3.
I'm allowing this per class instead
from luabridge3.
I've moved this to a per class / namespace, see the upcoming PR for extensible classes (i've added there options for classes and namespaces)
LuaBridge3/Tests/Source/ClassTests.cpp
Lines 2968 to 2993 in 49ddf4f
from luabridge3.
This is amazing. Thank you so much. I'm working on a scheme to identify trusted code and only permit this for trusted code. This will be really useful.
from luabridge3.
Related Issues (20)
- Compiler error use of deleted function luabridge::TypeResult<T>::TypeResult(...) HOT 6
- Enhancement Request: Custom error function for `lua_pcall`. HOT 11
- Error C3861 (using with Luau) HOT 3
- Can I cast types inside Lua? HOT 4
- Duplicate symbols on Win32 with default __stdcall HOT 9
- Debug names of C functions for Luau HOT 8
- Extensible class bug with inheritance
- Add support for addStaticIndexMetamethod and addStaticNewIndexMetamethod
- Using LuaBridge3 in a precompiled header on MSVC leads to an internal compiler error HOT 2
- Use of std::shared_ptr on classes without `std::enable_shared_from_this` HOT 1
- Stateful lambdas registered as functions loose state HOT 2
- Compile error with Cfunc property getter/setter HOT 2
- std::vector to 0-based Lua table HOT 5
- MSC Warning C4146 HOT 2
- How to expose C++ data (a vector, in this case) to Lua without making a copy? HOT 2
- Does LuaBridge3 Support Android for SDL2-based Games? HOT 2
- Passing a Lua Table (LuaRef) as an argument to C++ function HOT 1
- How to get the name of a Lua variable? HOT 2
- Comparison Issue Between `uint64_t` in C++ and Numeric Constant in Lua HOT 8
- NAI run lua code in string from cpp
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luabridge3.