diff --git a/ChangeLog b/ChangeLog index ec228e451e..0de7884ec3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,16 @@ +Thu Jul 3 11:26:04 GMT 2009 Mark McLoughlin + + Patch from Tim Waugh in https://bugzilla.redhat.com/507555 + + * src/security_selinux.c: Don't unnecessarily try to change a + file context + Thu Jul 3 11:24:44 GMT 2009 Mark McLoughlin Patch from Dan Berrange in https://bugzilla.redhat.com/493692 * src/security_selinux.c: Re-label shared and readonly images - + Thu Jul 2 15:58:09 CEST 2009 Daniel Veillard * docs/schemas/network.rng: fix the network schemas to match diff --git a/src/security_selinux.c b/src/security_selinux.c index 87073d2ecd..174dd57b72 100644 --- a/src/security_selinux.c +++ b/src/security_selinux.c @@ -318,10 +318,19 @@ static int SELinuxSetFilecon(virConnectPtr conn, const char *path, char *tcon) { char ebuf[1024]; + security_context_t econ; VIR_INFO("Setting SELinux context on '%s' to '%s'", path, tcon); - if(setfilecon(path, tcon) < 0) { + if (setfilecon(path, tcon) < 0) { + if (getfilecon(path, &econ) >= 0) { + if (STREQ(tcon, econ)) { + freecon(econ); + /* It's alright, there's nothing to change anyway. */ + return 0; + } + freecon(econ); + } virSecurityReportError(conn, VIR_ERR_ERROR, _("%s: unable to set security context " "'\%s\' on %s: %s."), __func__,