firewall: pass untrusted values as keyword arguments
Use keyword arguments to pass untrusted arguments to make sure the function parameter also have `untrusted_` prefix. Suggested by @woju
This commit is contained in:
parent
0200fdadcb
commit
2b963be9c7
@ -1010,7 +1010,8 @@ class QubesAdminAPI(qubes.api.AbstractQubesAPI):
|
|||||||
rules = []
|
rules = []
|
||||||
for untrusted_line in untrusted_payload.decode('ascii',
|
for untrusted_line in untrusted_payload.decode('ascii',
|
||||||
errors='strict').splitlines():
|
errors='strict').splitlines():
|
||||||
rule = qubes.firewall.Rule.from_api_string(untrusted_line)
|
rule = qubes.firewall.Rule.from_api_string(
|
||||||
|
untrusted_rule=untrusted_line)
|
||||||
rules.append(rule)
|
rules.append(rule)
|
||||||
|
|
||||||
self.fire_event_for_permission(rules=rules)
|
self.fire_event_for_permission(rules=rules)
|
||||||
|
@ -417,7 +417,7 @@ class Rule(qubes.PropertyHolder):
|
|||||||
# option-specific validation
|
# option-specific validation
|
||||||
kwargs = {}
|
kwargs = {}
|
||||||
if untrusted_comment:
|
if untrusted_comment:
|
||||||
kwargs['comment'] = untrusted_comment
|
kwargs['comment'] = Comment(untrusted_value=untrusted_comment)
|
||||||
|
|
||||||
for untrusted_option in untrusted_options.strip().split(' '):
|
for untrusted_option in untrusted_options.strip().split(' '):
|
||||||
untrusted_key, untrusted_value = untrusted_option.split('=', 1)
|
untrusted_key, untrusted_value = untrusted_option.split('=', 1)
|
||||||
@ -425,9 +425,13 @@ class Rule(qubes.PropertyHolder):
|
|||||||
raise ValueError('Option \'{}\' already set'.format(
|
raise ValueError('Option \'{}\' already set'.format(
|
||||||
untrusted_key))
|
untrusted_key))
|
||||||
if untrusted_key in [str(prop) for prop in cls.property_list()]:
|
if untrusted_key in [str(prop) for prop in cls.property_list()]:
|
||||||
kwargs[untrusted_key] = untrusted_value
|
kwargs[untrusted_key] = cls.property_get_def(
|
||||||
|
untrusted_key).type(untrusted_value=untrusted_value)
|
||||||
elif untrusted_key in ('dst4', 'dst6', 'dstname'):
|
elif untrusted_key in ('dst4', 'dst6', 'dstname'):
|
||||||
kwargs['dsthost'] = untrusted_value
|
if 'dsthost' in kwargs:
|
||||||
|
raise ValueError('Option \'{}\' already set'.format(
|
||||||
|
'dsthost'))
|
||||||
|
kwargs['dsthost'] = DstHost(untrusted_value=untrusted_value)
|
||||||
else:
|
else:
|
||||||
raise ValueError('Unknown firewall option')
|
raise ValueError('Unknown firewall option')
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user