-
Notifications
You must be signed in to change notification settings - Fork 8
Description
SOAAP currently understands when modifications occur to shared data, such as global variables, but does not track these modifications. Up until now this has been sufficient, but with the new context-sensitive function-pointer inference analysis, we will need to keep track of assignments to shared function-pointer variables that occur in different contexts. For example, we currently cannot infer that fp points to bar in the sandbox:
void (*fp)(void);
__soaap_sandbox_persistent("box")
void foo() {
fp(); // we can't currently infer that fp points to bar()
}
void bar() { ../ }
int main(int argc, char** argv) {
fp = bar;
__soaap_create_persistent_sandbox("box");
foo();
}
In general we will want to be able to model different sharing semantics for different sandboxing models (e.g. copy-on-write vs no sharing).