-
-
Notifications
You must be signed in to change notification settings - Fork 415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change trn->trn to box to fix a soundness hole #3591
Conversation
Thanks. Let's continue the discussion in #3572 We will also discuss in the sync call today, I expect. |
#3592 should resolve the issue with this - so after that's merged this can be rebased, after which it should pass tests and be mergable. |
#3592 has been merged. |
Huh, that was a lot easier then it looked. I ran into a lot of trouble with using iso. But then again I didn't have asynchronous compilation for that file. |
@jasoncarr0 I'm going to squash this when it's merged. Is there a single commit comment that you think would be appropriate for this? I'd prefer if you craft something as it is your work, but I can craft one if need be. |
I don't think I'm too attached to the particular commit message, maybe something like: |
Comment for when squashing: Change trn->trn to box to fix a soundness hole As discovered in #3571, it is currently possible to violate capability guarantees in the current viewpoint adaptation table, but this could be prevented by updating @sylvanc pointed out that we could easily close the latter hole without implementing the extensive changes required by George Steed's model by simply updating our single viewpoint adaptation table. This fix will break existing code, in that it might remove some valid/sound uses of non-extracting capabilities to fix the soundness hole for extracting capabilities. But it fixes the hole and prevent the exploit. To be totally clear, fixing this issue in this fashion means we updated the
In other words, to close the hole, this commit makes it so that the viewpoint adaptation Note that in George Steed's model, the non-extracting form is Fixes #3571 |
@jasoncarr0 this needs to be rebased against master to pick up @Theodus' changes to the persistent collection, do you know how to do update your fork with the latest changes from ponyc master and then how to rebase your branch from those changes? |
Whoops, yup I do know how to do that, didn't get enough sleep today :P |
@jasoncarr0 i think you accidentally closed this PR. |
Yeah apparently I don't know how to rebase. Somehow it didn't pick up my commits, so Github just decided it was merged. |
@jasoncarr0 two options, i can walk you through the process or... you can delete your fork and start from a new fork that will get you the latest ponyc master and you can open a PR from that. Which would you prefer to try? |
@jemc you are ok with this being merged yes? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep, good to merge once CI passes.
Thanks, @jasoncarr0!
Currently, this causes some compile errors in collections/persistent/_map_node
And they really don't seem trivial to fix; it's relying pretty heavily on the ability to mutate some trn views of trns. It can't be changed to ref either since ref also goes to box.
So I'm not sure we can make this change without going forward with extracting/non-extracting
Fixes #3572