-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial support for
.so
compartments
Implement support for compartments to be gives as dynamic libraries (i.e., `so` files). This includes looking for library dependencies, and loading those in the same compartment as the given user file. These libraries are expected to be found in the path given by the environment variable `COMP_LIBRARY_PATH`. What this means is that we now also add a "local" `libc` to each compartment that needs it (likely all?). Thus, we can greatly reduce the number of intercepts we require. Perhaps we can overhaul the mechanism entirely to only intercept hard-coded functions we know we need (e.g., allocator calls). The support for static binaries has not been removed completely, but likely has been broken due to this overhaul. Whether to leave as is, to remove completely, or to add support for it remains to be decided. Further small changes: * Rework testing infrastructure to account for `so` compartments * Replace `false` `assert`s and `exit`s with `err`s * Replace all `pread`s with `do_pread` wrappers * Rename intercept functions from `manager_` prefix to `intercepted_` * Slight `README` update * Replace `intptr_t` usage with `void*` where appopriate * Fixed a bug where we would find symbols in dependency libraries with a value of 0x0 to be eagerly relocated. Assumption is these symbols are meant to be relocated in the dependency library itself. We now simply filter out 0x0 addresses for symbols to eagerly relocate
- Loading branch information
Showing
24 changed files
with
1,409 additions
and
867 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.