Message ID | 20170504170122.26882-1-alan.christopher.jenkins@gmail.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On Thu, May 04, 2017 at 06:01:17PM +0100, Alan Jenkins wrote: > This reverts commit ac7899fc3ad6221e195dd13cdf14b346897314ae, > which is not yet part of an officially tagged release > (or release candidate). > > `LOGFILE=/proc/self/fd/1` was wrong. > > `LOGFILE=$(tty)` was being relied on in one case (exclude_dirs), > to log messages from a function run specifically with stdout redirected > (captured into a variable). > > Having `logit "message"` break inside redirected functions > is a nasty leaky abstraction. > > This caused e.g. `fixfiles restore` to terminate early with the error > > skipping: No such file or directory > > if the user had configured any excluded paths in > /etc/selinux/fixfiles_exclude_dirs > --- > policycoreutils/scripts/fixfiles | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles > index bc74d69..75d7762 100755 > --- a/policycoreutils/scripts/fixfiles > +++ b/policycoreutils/scripts/fixfiles > @@ -119,7 +119,11 @@ VERBOSE="-p" > FORCEFLAG="" > DIRS="" > RPMILES="" > -LOGFILE=/proc/self/fd/1 > +LOGFILE=`tty` > +if [ $? != 0 ]; then > + LOGFILE="/dev/null" > +fi > +LOGGER=/usr/sbin/logger $ ls /usr/bin/logger /usr/bin/logger $ ls /usr/sbin/logger ls: cannot access '/usr/sbin/logger': No such file or directory > SETFILES=/sbin/setfiles > RESTORECON=/sbin/restorecon > FILESYSTEMSRW=`get_rw_labeled_mounts` > @@ -134,11 +138,11 @@ else > fi > > # > -# Write to LOGFILE > +# Log to either syslog or a LOGFILE > # > logit () { > if [ -n $LOGFILE ]; then > - echo $1 >> "$LOGFILE" > + echo $1 >> $LOGFILE > fi > } > # > -- > 2.9.3 >
On Thu, May 04, 2017 at 07:28:19PM +0200, Dominick Grift wrote: > On Thu, May 04, 2017 at 06:01:17PM +0100, Alan Jenkins wrote: > > This reverts commit ac7899fc3ad6221e195dd13cdf14b346897314ae, > > which is not yet part of an officially tagged release > > (or release candidate). > > > > `LOGFILE=/proc/self/fd/1` was wrong. > > > > `LOGFILE=$(tty)` was being relied on in one case (exclude_dirs), > > to log messages from a function run specifically with stdout redirected > > (captured into a variable). > > > > Having `logit "message"` break inside redirected functions > > is a nasty leaky abstraction. > > > > This caused e.g. `fixfiles restore` to terminate early with the error > > > > skipping: No such file or directory > > > > if the user had configured any excluded paths in > > /etc/selinux/fixfiles_exclude_dirs > > --- > > policycoreutils/scripts/fixfiles | 10 +++++++--- > > 1 file changed, 7 insertions(+), 3 deletions(-) > > > > diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles > > index bc74d69..75d7762 100755 > > --- a/policycoreutils/scripts/fixfiles > > +++ b/policycoreutils/scripts/fixfiles > > @@ -119,7 +119,11 @@ VERBOSE="-p" > > FORCEFLAG="" > > DIRS="" > > RPMILES="" > > -LOGFILE=/proc/self/fd/1 > > +LOGFILE=`tty` > > +if [ $? != 0 ]; then > > + LOGFILE="/dev/null" > > +fi > > +LOGGER=/usr/sbin/logger > > $ ls /usr/bin/logger > /usr/bin/logger > $ ls /usr/sbin/logger > ls: cannot access '/usr/sbin/logger': No such file or directory Whoops, please ignore. This was removed anyway > > > SETFILES=/sbin/setfiles > > RESTORECON=/sbin/restorecon > > FILESYSTEMSRW=`get_rw_labeled_mounts` > > @@ -134,11 +138,11 @@ else > > fi > > > > # > > -# Write to LOGFILE > > +# Log to either syslog or a LOGFILE > > # > > logit () { > > if [ -n $LOGFILE ]; then > > - echo $1 >> "$LOGFILE" > > + echo $1 >> $LOGFILE > > fi > > } > > # > > -- > > 2.9.3 > > > > -- > Key fingerprint = 5F4D 3CDB D3F8 3652 FBD8 02D5 3B6C 5F1D 2C7B 6B02 > https://sks-keyservers.net/pks/lookup?op=get&search=0x3B6C5F1D2C7B6B02 > Dominick Grift
On 05/04/2017 01:01 PM, Alan Jenkins wrote: > This reverts commit ac7899fc3ad6221e195dd13cdf14b346897314ae, > which is not yet part of an officially tagged release > (or release candidate). > > `LOGFILE=/proc/self/fd/1` was wrong. > > `LOGFILE=$(tty)` was being relied on in one case (exclude_dirs), > to log messages from a function run specifically with stdout redirected > (captured into a variable). > > Having `logit "message"` break inside redirected functions > is a nasty leaky abstraction. > > This caused e.g. `fixfiles restore` to terminate early with the error > > skipping: No such file or directory > > if the user had configured any excluded paths in > /etc/selinux/fixfiles_exclude_dirs These six patches have been applied. Thanks, Jim > --- > policycoreutils/scripts/fixfiles | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles > index bc74d69..75d7762 100755 > --- a/policycoreutils/scripts/fixfiles > +++ b/policycoreutils/scripts/fixfiles > @@ -119,7 +119,11 @@ VERBOSE="-p" > FORCEFLAG="" > DIRS="" > RPMILES="" > -LOGFILE=/proc/self/fd/1 > +LOGFILE=`tty` > +if [ $? != 0 ]; then > + LOGFILE="/dev/null" > +fi > +LOGGER=/usr/sbin/logger > SETFILES=/sbin/setfiles > RESTORECON=/sbin/restorecon > FILESYSTEMSRW=`get_rw_labeled_mounts` > @@ -134,11 +138,11 @@ else > fi > > # > -# Write to LOGFILE > +# Log to either syslog or a LOGFILE > # > logit () { > if [ -n $LOGFILE ]; then > - echo $1 >> "$LOGFILE" > + echo $1 >> $LOGFILE > fi > } > # >
diff --git a/policycoreutils/scripts/fixfiles b/policycoreutils/scripts/fixfiles index bc74d69..75d7762 100755 --- a/policycoreutils/scripts/fixfiles +++ b/policycoreutils/scripts/fixfiles @@ -119,7 +119,11 @@ VERBOSE="-p" FORCEFLAG="" DIRS="" RPMILES="" -LOGFILE=/proc/self/fd/1 +LOGFILE=`tty` +if [ $? != 0 ]; then + LOGFILE="/dev/null" +fi +LOGGER=/usr/sbin/logger SETFILES=/sbin/setfiles RESTORECON=/sbin/restorecon FILESYSTEMSRW=`get_rw_labeled_mounts` @@ -134,11 +138,11 @@ else fi # -# Write to LOGFILE +# Log to either syslog or a LOGFILE # logit () { if [ -n $LOGFILE ]; then - echo $1 >> "$LOGFILE" + echo $1 >> $LOGFILE fi } #