diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2022-04-17 17:47:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-17 17:47:24 +0200 |
commit | 9c5928b5aa3716f7441694da24982cecacb7a061 (patch) | |
tree | 0c3e750337774162dfb2910cf462b9b7e0b8d4ba /cli/ops/bench.rs | |
parent | 19bb82aa40eabd9a06ba6650558653ec88d19a96 (diff) |
fix: panic when trying to pledge permissions before restoring previous pledge (#14306)
This commit fixes and edge case, where testing/benching code could pledge new
permission set before restoring the previous pledge.
Appropriate panics were added and tests that assert that process is killed
in case of "recursive pledge".
Diffstat (limited to 'cli/ops/bench.rs')
-rw-r--r-- | cli/ops/bench.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/cli/ops/bench.rs b/cli/ops/bench.rs index ea040b4a5..6f4b80974 100644 --- a/cli/ops/bench.rs +++ b/cli/ops/bench.rs @@ -63,6 +63,10 @@ pub fn op_pledge_test_permissions( let worker_permissions = create_child_permissions(parent_permissions, args)?; let parent_permissions = parent_permissions.clone(); + if state.try_take::<PermissionsHolder>().is_some() { + panic!("pledge test permissions called before restoring previous pledge"); + } + state.put::<PermissionsHolder>(PermissionsHolder(token, parent_permissions)); // NOTE: This call overrides current permission set for the worker |