qubespolicy: translate '' target to '@default' earlier
Translate empty target to '@default' keyword earlier, so that original_target will report '@default' instead of ''. The latter is rejected by qubes-rpc-multiplexer when the call is directed to dom0, because it expects to get non-empty arguments about original target.
This commit is contained in:
		
							parent
							
								
									bda9264e19
								
							
						
					
					
						commit
						232a00a2b0
					
				| @ -237,7 +237,7 @@ class PolicyRule(object): | ||||
| 
 | ||||
|         # not specified target matches only with @default and @anyvm policy | ||||
|         # entry | ||||
|         if value == '@default' or value == '': | ||||
|         if value == '@default': | ||||
|             return policy_value in ('@default', '@anyvm') | ||||
| 
 | ||||
|         # if specific target used, check if it's valid | ||||
| @ -642,6 +642,8 @@ class Policy(object): | ||||
|         :return tuple(rule, considered_targets) - where considered targets is a | ||||
|         list of possible targets for 'ask' action (rule.action == Action.ask) | ||||
|         ''' | ||||
|         if target == '': | ||||
|             target = '@default' | ||||
|         rule = self.find_matching_rule(system_info, source, target) | ||||
|         if rule.action == Action.deny: | ||||
|             raise AccessDenied( | ||||
|  | ||||
| @ -254,8 +254,6 @@ class TC_00_PolicyRule(qubes.tests.QubesTestCase): | ||||
|         is_match_single = qubespolicy.PolicyRule.is_match_single | ||||
|         self.assertTrue(is_match_single(system_info, '@anyvm', 'test-vm1')) | ||||
|         self.assertTrue(is_match_single(system_info, '@anyvm', '@default')) | ||||
|         self.assertTrue(is_match_single(system_info, '@anyvm', '')) | ||||
|         self.assertTrue(is_match_single(system_info, '@default', '')) | ||||
|         self.assertTrue(is_match_single(system_info, '@default', '@default')) | ||||
|         self.assertTrue(is_match_single(system_info, '@tag:tag1', 'test-vm1')) | ||||
|         self.assertTrue(is_match_single(system_info, '@type:AppVM', 'test-vm1')) | ||||
| @ -679,9 +677,7 @@ class TC_20_Policy(qubes.tests.QubesTestCase): | ||||
|             system_info, 'test-vm2', 'test-no-dvm'), policy.policy_rules[2]) | ||||
|         # @anyvm matches @default too | ||||
|         self.assertEqual(policy.find_matching_rule( | ||||
|             system_info, 'test-vm1', ''), policy.policy_rules[1]) | ||||
|         self.assertEqual(policy.find_matching_rule( | ||||
|             system_info, 'test-vm2', ''), policy.policy_rules[7]) | ||||
|             system_info, 'test-vm1', '@default'), policy.policy_rules[1]) | ||||
|         self.assertEqual(policy.find_matching_rule( | ||||
|             system_info, 'test-vm2', '@default'), policy.policy_rules[7]) | ||||
|         self.assertEqual(policy.find_matching_rule( | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki