mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xend: Flask MLS security label handling
Changed the way security labels are handled to allow domains to be labeled with Flask MLS security labels. Changed the error message generated when an invalid context is submitted to be more useful. Signed-off-by: Machon B. Gregory <mbgrego@tycho.ncsc.mil> Signed-off-by: George S. Coker, II <gscoker@alpha.ncsc.mil>
This commit is contained in:
1 parent
adfa96375a
commit
c50b989b44
3 files changed
+6
-17
No files matched your search
@@ -25,7 +25,7 @@ def label2ssidref(label, policy, type):
|
||||
try:
|
||||
return flask.flask_context_to_sid(label)
|
||||
except:
|
||||
return ""
|
||||
raise XSMError('Invalid context %s' % label)
|
||||
|
||||
def parse_security_label(security_label):
|
||||
return security_label
|
||||
|
||||
@@ -802,11 +802,6 @@ class XendConfig(dict):
|
||||
if not sxp.child_value(sxp_cfg, 'security_label'):
|
||||
del cfg['security']
|
||||
|
||||
sec_lab = cfg['security_label'].split(":")
|
||||
if len(sec_lab) != 3:
|
||||
raise XendConfigError("Badly formatted security label: %s"
|
||||
% cfg['security_label'])
|
||||
|
||||
old_state = sxp.child_value(sxp_cfg, 'state')
|
||||
if old_state:
|
||||
for i in range(len(CONFIG_OLD_DOM_STATES)):
|
||||
|
||||
@@ -1163,17 +1163,11 @@ def preprocess_access_control(vals):
|
||||
num = len(vals.access_control)
|
||||
if num == 1:
|
||||
access_control = (vals.access_control)[0]
|
||||
d = {}
|
||||
a = access_control.split(',')
|
||||
if len(a) > 2:
|
||||
err('Too many elements in access_control specifier: ' + access_control)
|
||||
for b in a:
|
||||
(k, v) = b.strip().split('=', 1)
|
||||
k = k.strip()
|
||||
v = v.strip()
|
||||
if k not in ['policy','label']:
|
||||
err('Invalid access_control specifier: ' + access_control)
|
||||
d[k] = v
|
||||
acc_re = 'policy=(?P<policy>.*),label=(?P<label>.*)'
|
||||
acc_match = re.match(acc_re,access_control)
|
||||
if acc_match == None:
|
||||
err('Invalid access_control specifier: ' + access_control)
|
||||
d = acc_match.groupdict();
|
||||
access_controls.append(d)
|
||||
vals.access_control = access_controls
|
||||
elif num > 1:
|
||||
|
||||