• meir's avatar
    Protect any table which is reachable from globals and added globals allow list. · 11b602fb
    meir authored
    The allow list is done by setting a metatable on the global table before initializing
    any library. The metatable set the `__newindex` field to a function that check
    the allow list before adding the field to the table. Fields which is not on the
    allow list are simply ignored.
    
    After initialization phase is done we protect the global table and each table
    that might be reachable from the global table. For each table we also protect
    the table metatable if exists.
    11b602fb
scripting.c 106 KB