A few changes to help ensure the signal test runs correctly:

1. Increase the sleep duration of the ptrace test to 5 seconds as
100ms was not reliably long enough on all of my test systems.

2. Spawn a separate process to send the TERM signal to the test
processes as the script process may not be eligible for auditing
if the system has the default '-a exit,always never' filter rule.

3. Fix the process group's child tasks to properly exit after
sleeping.

Signed-off-by: Paul Moore <p...@paul-moore.com>
---
 tests/signal/test |   20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/tests/signal/test b/tests/signal/test
index 16ad39b..683a110 100755
--- a/tests/signal/test
+++ b/tests/signal/test
@@ -49,7 +49,7 @@ my $result;
 # Add rule to catch signals generated by self
 $result =
   system(
-"auditctl -a exit,always -F arch=b$ENV{MODE} -S kill -F pid=$$ -F key=$key 
>/dev/null 2>&1"
+"auditctl -a exit,always -F arch=b$ENV{MODE} -S kill -F key=$key >/dev/null 
2>&1"
   );
 ok( $result, 0 );    # Was the rule accepted?
 
@@ -59,16 +59,22 @@ if ( not $task1_pid ) {
     setpgrp || die;
 
     # create 2 child processes
-    fork || sleep 10;
-    fork || sleep 10;
+    for ( 1 .. 2 ) {
+        if ( not fork ) {
+            sleep 10;
+            exit;
+        }
+    }
     sleep 10;
 }
 sleep 1;
 
+# Did taskself start okay
+ok( $task1_pid > 0 );
+
 # generate signal
-my $count = kill 'SIGTERM', -$task1_pid;
-ok( $count, 1 );         # Was the signal delivered?
-ok( $task1_pid > 0 );    # Did taskself start ok?
+$result = system("kill -SIGTERM $task1_pid");
+ok( $result, 0 );
 
 # Delete audit rule
 system(
@@ -85,7 +91,7 @@ ok( $result, 0 );    # Was the rule accepted?
 
 # Create task to which to attach
 seek( $fh_out, 0, 0 );
-system("sleep .1 >/dev/null 2>&1 & echo \$! >$stdout");
+system("sleep 5 >/dev/null 2>&1 & echo \$! >$stdout");
 my $task2_pid = <$fh_out>;
 chomp($task2_pid);
 

--
Linux-audit mailing list
Linux-audit@redhat.com
https://listman.redhat.com/mailman/listinfo/linux-audit

Reply via email to