mirror of
https://gitlab.com/apparmor/apparmor
synced 2025-08-31 06:16:03 +00:00
severity: replace load_variables() with set_variables()
Add set_variables() to severity.py to set the variables for severity rating. It typically gets the data from the get_all_merged_variables() result. This replaces the slightly broken load_variables() that parsed profile files for variables. (For example, parsing "@{foo} = /bar" resulted in a variable name "@{foo} " with trailing space.) Also adjust aa.py and the severity tests to use set_variables() (with get_all_merged_variables()) instead of load_variables(). This also re-adds the checks that were removed in the "Store variables in active_profiles (ProfileList)" commit earlier, while still fixing lp:1331856. With this change, unload_variables() becomes useless (the variables get overwritten in set_variables() anyway), drop it and its calls. Note that load_variables() silently ignored non-existing files while the get_all_merged_variables() call only works for existing files that are known to active_profiles. Since the input of ask_the_questions() and ask_exec() comes from log_dict (= audit.log or a profile to merge), add a check if that profile actually exists in the set of active profiles. Also adjust the severity tests to use set_variables(). Finally, drop the tests that check for handling non-existing include files, redefining and adding to non-existing variables - all these things get now handled in include_list_recursive() and get_all_merged_variables() and their tests. Fixes: https://bugs.launchpad.net/apparmor/+bug/1331856
This commit is contained in:
@@ -355,6 +355,10 @@ class AaTest_get_all_merged_variables(AATest):
|
||||
with self.assertRaises(AppArmorException):
|
||||
apparmor.aa.active_profiles.get_all_merged_variables(os.path.join(self.profile_dir, 'usr.sbin.dnsmasq'), apparmor.aa.include_list_recursive(apparmor.aa.active_profiles.files[prof_filename]), self.profile_dir)
|
||||
|
||||
def test_vars_from_nonexisting_profile(self):
|
||||
with self.assertRaises(AppArmorBug):
|
||||
apparmor.aa.active_profiles.get_all_merged_variables(os.path.join(self.profile_dir, 'file.not.found'), list(), self.profile_dir)
|
||||
|
||||
|
||||
setup_aa(apparmor.aa)
|
||||
setup_all_loops(__name__)
|
||||
|
Reference in New Issue
Block a user