mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-10 14:57:42 +00:00
lxcCapsInit: Allocate primary security driver unconditionally
Currently, if the primary security driver is 'none', we skip
initializing caps->host.secModels. This means, later, when LXC domain
XML is parsed and <seclabel type='none'/> is found (see
virSecurityLabelDefsParseXML), the model name is not copied to the
seclabel. This leads to subsequent crash in virSecurityManagerGenLabel
where we call STREQ() over the model (note, that we are expecting model
to be !NULL).
(cherry picked from commit 37d96498c6
)
Conflicts:
src/lxc/lxc_conf.c
This commit is contained in:
parent
7f72e6c37c
commit
06e612e9b1
@ -114,16 +114,15 @@ virCapsPtr lxcCapsInit(virLXCDriverPtr driver)
|
||||
|
||||
doi = virSecurityManagerGetDOI(driver->securityManager);
|
||||
model = virSecurityManagerGetModel(driver->securityManager);
|
||||
if (STRNEQ(model, "none")) {
|
||||
/* Allocate just the primary security driver for LXC. */
|
||||
if (VIR_ALLOC(caps->host.secModels) < 0)
|
||||
goto no_memory;
|
||||
caps->host.nsecModels = 1;
|
||||
if (VIR_STRDUP(caps->host.secModels[0].model, model) < 0)
|
||||
goto error;
|
||||
if (VIR_STRDUP(caps->host.secModels[0].doi, doi) < 0)
|
||||
goto error;
|
||||
}
|
||||
|
||||
/* Allocate just the primary security driver for LXC. */
|
||||
if (VIR_ALLOC(caps->host.secModels) < 0)
|
||||
goto no_memory;
|
||||
caps->host.nsecModels = 1;
|
||||
if (VIR_STRDUP(caps->host.secModels[0].model, model) < 0)
|
||||
goto error;
|
||||
if (VIR_STRDUP(caps->host.secModels[0].doi, doi) < 0)
|
||||
goto error;
|
||||
|
||||
VIR_DEBUG("Initialized caps for security driver \"%s\" with "
|
||||
"DOI \"%s\"", model, doi);
|
||||
|
Loading…
Reference in New Issue
Block a user