mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-02 11:05:22 +00:00
3e92938656
In order to reuse the newly-created host-side disk struct in the virstoragefile backing chain code, I first have to move it to util/. This starts the process, by first moving the security label structures. * src/conf/domain_conf.h (virDomainDefGenSecurityLabelDef) (virDomainDiskDefGenSecurityLabelDef, virSecurityLabelDefFree) (virSecurityDeviceLabelDefFree, virSecurityLabelDef) (virSecurityDeviceLabelDef): Move... * src/util/virseclabel.h: ...to new file. (virSecurityLabelDefNew, virSecurityDeviceLabelDefNew): Rename the GenSecurity functions. * src/qemu/qemu_process.c (qemuProcessAttach): Adjust callers. * src/security/security_manager.c (virSecurityManagerGenLabel): Likewise. * src/security/security_selinux.c (virSecuritySELinuxSetSecurityFileLabel): Likewise. * src/util/virseclabel.c: New file. * src/conf/domain_conf.c: Move security code, and fix fallout. * src/Makefile.am (UTIL_SOURCES): Build new file. * src/libvirt_private.syms (domain_conf.h): Move symbols... (virseclabel.h): ...to new section. Signed-off-by: Eric Blake <eblake@redhat.com>
83 lines
1.9 KiB
C
83 lines
1.9 KiB
C
/*
|
|
* virseclabel.c: security label utility functions
|
|
*
|
|
* Copyright (C) 2006-2014 Red Hat, Inc.
|
|
* Copyright (C) 2006-2008 Daniel P. Berrange
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include <config.h>
|
|
|
|
#include "internal.h"
|
|
#include "viralloc.h"
|
|
#include "virseclabel.h"
|
|
#include "virstring.h"
|
|
|
|
#define VIR_FROM_THIS VIR_FROM_NONE
|
|
|
|
|
|
void
|
|
virSecurityLabelDefFree(virSecurityLabelDefPtr def)
|
|
{
|
|
if (!def)
|
|
return;
|
|
VIR_FREE(def->model);
|
|
VIR_FREE(def->label);
|
|
VIR_FREE(def->imagelabel);
|
|
VIR_FREE(def->baselabel);
|
|
VIR_FREE(def);
|
|
}
|
|
|
|
|
|
void
|
|
virSecurityDeviceLabelDefFree(virSecurityDeviceLabelDefPtr def)
|
|
{
|
|
if (!def)
|
|
return;
|
|
VIR_FREE(def->model);
|
|
VIR_FREE(def->label);
|
|
VIR_FREE(def);
|
|
}
|
|
|
|
|
|
virSecurityLabelDefPtr
|
|
virSecurityLabelDefNew(const char *model)
|
|
{
|
|
virSecurityLabelDefPtr seclabel = NULL;
|
|
|
|
if (VIR_ALLOC(seclabel) < 0 ||
|
|
VIR_STRDUP(seclabel->model, model) < 0) {
|
|
virSecurityLabelDefFree(seclabel);
|
|
seclabel = NULL;
|
|
}
|
|
|
|
return seclabel;
|
|
}
|
|
|
|
virSecurityDeviceLabelDefPtr
|
|
virSecurityDeviceLabelDefNew(const char *model)
|
|
{
|
|
virSecurityDeviceLabelDefPtr seclabel = NULL;
|
|
|
|
if (VIR_ALLOC(seclabel) < 0 ||
|
|
VIR_STRDUP(seclabel->model, model) < 0) {
|
|
virSecurityDeviceLabelDefFree(seclabel);
|
|
seclabel = NULL;
|
|
}
|
|
|
|
return seclabel;
|
|
}
|