mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 06:50:22 +03:00
security: Don't stop restoring labels too early
The point of virSecurityManagerRestoreAllLabel() function is to restore ALL labels and be tolerant to possible errors, i.e. continue restoring seclabels and NOT return early. Well, in two implementations of this internal API this type of problem was found: 1) virSecurityDACRestoreAllLabel() returned early if virSecurityDACRestoreGraphicsLabel() failed, or when def->sec->sectype equals to an impossible value. 2) virSecuritySELinuxRestoreAllLabel() returned early if virSecuritySELinuxRestoreMemoryLabel() failed. Fix all three places. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
63c0f15f09
commit
fc47a37a7a
@ -1973,7 +1973,7 @@ virSecurityDACRestoreAllLabel(virSecurityManager *mgr,
|
||||
|
||||
for (i = 0; i < def->ngraphics; i++) {
|
||||
if (virSecurityDACRestoreGraphicsLabel(mgr, def, def->graphics[i]) < 0)
|
||||
return -1;
|
||||
rc = -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < def->ninputs; i++) {
|
||||
@ -2021,7 +2021,7 @@ virSecurityDACRestoreAllLabel(virSecurityManager *mgr,
|
||||
case VIR_DOMAIN_LAUNCH_SECURITY_NONE:
|
||||
case VIR_DOMAIN_LAUNCH_SECURITY_LAST:
|
||||
virReportEnumRangeError(virDomainLaunchSecurity, def->sec->sectype);
|
||||
return -1;
|
||||
rc = -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2969,7 +2969,7 @@ virSecuritySELinuxRestoreAllLabel(virSecurityManager *mgr,
|
||||
|
||||
for (i = 0; i < def->nmems; i++) {
|
||||
if (virSecuritySELinuxRestoreMemoryLabel(mgr, def, def->mems[i]) < 0)
|
||||
return -1;
|
||||
rc = -1;
|
||||
}
|
||||
|
||||
for (i = 0; i < def->ntpms; i++) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user