+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:
#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;
- }
- vol->target.perms.label = strdup(filecon);
- if (vol->target.perms.label == NULL) {
- virStorageReportError(conn, VIR_ERR_NO_MEMORY, "%s", _("context"));
- 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);
}
- freecon(filecon);
#else
vol->target.perms.label = NULL;
#endif