From c4233ec14a82d1d4c0c71915be40913259d417fa Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Dec 08 2015 20:50:31 +0000 Subject: Ticket #48305 - perl module conditional test is not conditional when checking SELinux policies Description: commit 9fefc13c02c9ae037fad053152193794706aaa31 introduced a regression: Bug 1287547 - 389-ds-base-1.3.4.5-1.fc23.x86_64 leaves empty /NUL around after ipa-server-install To check the existence of a character special file "/dev/null", "-c" is supposed to be used instead of "-f". Reviewed by mreynolds@redhat.com (Thank you, Mark!!) https://fedorahosted.org/389/ticket/48305 --- diff --git a/ldap/admin/src/scripts/DSCreate.pm.in b/ldap/admin/src/scripts/DSCreate.pm.in index d449b02..e62ae2c 100644 --- a/ldap/admin/src/scripts/DSCreate.pm.in +++ b/ldap/admin/src/scripts/DSCreate.pm.in @@ -283,7 +283,7 @@ sub createInstanceScripts { my $skip = shift; my $perlexec = "@perlexec@" || "/usr/bin/env perl"; my $myperl = "!$perlexec"; - my $mydevnull = (-f "/dev/null" ? " /dev/null " : " NUL "); + my $mydevnull = (-c "/dev/null" ? " /dev/null " : " NUL "); # If we have InstScriptsEnabled, we likely have setup.inf or the argument. # However, during an upgrade, we need to know if we should upgrade the template files or not. @@ -997,7 +997,7 @@ sub setDefaults { sub updateSelinuxPolicy { my $inf = shift; - my $mydevnull = (-f "/dev/null" ? " /dev/null " : " NUL "); + my $mydevnull = (-c "/dev/null" ? " /dev/null " : " NUL "); # if selinux is not available, do nothing if ((getLogin() eq 'root') and "@with_selinux@" and @@ -1451,7 +1451,7 @@ sub removeDSInstance { } # remove the selinux label from the ports if needed - my $mydevnull = (-f "/dev/null" ? " /dev/null " : " NUL "); + my $mydevnull = (-c "/dev/null" ? " /dev/null " : " NUL "); if ((getLogin() eq 'root') and "@with_selinux@" and -f "@sbindir@/sestatus" and !system ("@sbindir@/sestatus | egrep -i \"selinux status:\\s*enabled\" > $mydevnull 2>&1")) { foreach my $port (@{$entry->{"nsslapd-port"}})