The usage of exclude_dirs() is non-obvious. It turns out it is only used by the `-C` mode of fixfiles. The other four modes use the narrower list generated by exclude_dirs_from_relabelling(). Let's make this distinction more obvious. (The purpose of the extra exclusions is not clear. E.g. there's an exclusion for /dev. Whereas the `fixfiles check` mode explicitly tells you that it's going to relabel /dev, without causing any problem. Maybe that part is out of date? But without some explanation of the list, I don't want to change anything!) --- policycoreutils/scripts/fixfiles | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles index 7e5ce88..dae073d 100755 --- a/policycoreutils/scripts/fixfiles +++ b/policycoreutils/scripts/fixfiles @@ -101,15 +101,6 @@ exclude_dirs_from_relabelling() { echo "$exclude_from_relabelling" } -exclude_dirs() { - exclude= - for i in /sys /proc /dev /run /mnt /var/tmp /var/lib/BackupPC /home /tmp /dev; do - [ -e $i ] && exclude="$exclude -e $i"; - done - exclude="$exclude `exclude_dirs_from_relabelling`" - echo "$exclude" -} - # # Set global Variables # @@ -162,6 +153,12 @@ newer() { # run restorecon on all files affected by the differences. # diff_filecontext() { +exclude_dirs= +for i in /sys /proc /dev /run /mnt /var/tmp /var/lib/BackupPC /home /tmp /dev; do + [ -e $i ] && exclude_dirs="$exclude_dirs -e $i"; +done +exclude_dirs="$exclude_dirs `exclude_dirs_from_relabelling`" + if [ -f ${PREFC} -a -x /usr/bin/diff ]; then TEMPFILE=`mktemp ${FC}.XXXXXXXXXX` test -z "$TEMPFILE" && exit @@ -191,7 +188,7 @@ if [ -f ${PREFC} -a -x /usr/bin/diff ]; then esac; \ fi; \ done | \ - ${RESTORECON} ${VERBOSE} -i -f - -R $* `exclude_dirs`; \ + ${RESTORECON} ${VERBOSE} -i -f - -R $* $exclude_dirs; \ rm -f ${TEMPFILE} ${PREFCTEMPFILE} fi } -- 2.9.3