Patch setfiles to only warn if add_remove fails to lstat on user initiated excludes.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Currently in F12 if you have file systems that root can not read

# restorecon -R -v /var/lib/libvirt/
Can't stat directory "/home/dwalsh/.gvfs", Permission denied.
Can't stat directory "/home/dwalsh/redhat", Permission denied.

After patch

# ./restorecon -R -v /var/lib/libvirt/
diff -up policycoreutils-2.0.70/setfiles/setfiles.c~ policycoreutils-2.0.70/setfiles/setfiles.c
--- policycoreutils-2.0.70/setfiles/setfiles.c~	2009-08-05 15:11:11.000000000 -0400
+++ policycoreutils-2.0.70/setfiles/setfiles.c	2009-08-10 11:06:54.000000000 -0400
@@ -234,7 +234,7 @@ void filespec_destroy(void)
 	fl_head = NULL;
 }
 
-static int add_exclude(const char *directory)
+static int add_exclude(const char *directory, int warn)
 {
 	struct stat sb;
 	size_t len = 0;
@@ -244,8 +244,8 @@ static int add_exclude(const char *direc
 		return 1;
 	}
 	if (lstat(directory, &sb)) {
-		fprintf(stderr, "Can't stat directory \"%s\", %s.\n",
-			directory, strerror(errno));
+		if (warn) fprintf(stderr, "Can't stat directory \"%s\", %s.\n",
+				directory, strerror(errno));
 		return 0;
 	}
 	if ((sb.st_mode & S_IFDIR) == 0) {
@@ -727,7 +727,7 @@ static void exclude_non_seclabel_mounts(
 
 		/* exclude mount points without the seclabel option */
 		if (!found)
-			add_exclude(mount_info[1]);
+			add_exclude(mount_info[1], 0);
 	}
 
 	free(buf);
@@ -840,7 +840,7 @@ int main(int argc, char **argv)
 			}
 		case 'e':
 			remove_exclude(optarg);
-			if (add_exclude(optarg))
+			if (add_exclude(optarg, 1))
 				exit(1);
 			break;
 		case 'f':

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux