Cope with missing selinux attribute

This commit is contained in:
Daniel P. Berrange 2008-03-17 15:09:38 +00:00
parent ca7047f122
commit d8b363c35f
2 changed files with 20 additions and 10 deletions

View File

@ -1,3 +1,8 @@
Mon Mar 17 11:09:22 EDT 2008 Daniel P. Berrange <berrange@redhat.com>
* src/storage_backend.c: Cope with missing SELinux context
data by ignoring the error
Mon Mar 17 11:46:09 CET 2008 Daniel Veillard <veillard@redhat.com>
* src/libvirt.c docs/libvirt-*.xml docs/html/libvirt-libvirt.html:

View File

@ -240,17 +240,22 @@ virStorageBackendUpdateVolInfoFD(virConnectPtr conn,
#if HAVE_SELINUX
if (fgetfilecon(fd, &filecon) == -1) {
virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
_("cannot get file context of %s: %s"),
vol->target.path, strerror(errno));
return -1;
if (errno != ENODATA) {
virStorageReportError(conn, VIR_ERR_INTERNAL_ERROR,
_("cannot get file context of %s: %s"),
vol->target.path, strerror(errno));
return -1;
} else {
vol->target.perms.label = NULL;
}
} else {
vol->target.perms.label = strdup(filecon);
if (vol->target.perms.label == NULL) {
virStorageReportError(conn, VIR_ERR_NO_MEMORY, "%s", _("context"));
return -1;
}
freecon(filecon);
}
vol->target.perms.label = strdup(filecon);
if (vol->target.perms.label == NULL) {
virStorageReportError(conn, VIR_ERR_NO_MEMORY, "%s", _("context"));
return -1;
}
freecon(filecon);
#else
vol->target.perms.label = NULL;
#endif