]> sourceware.org Git - systemtap.git/commitdiff
PR10653: don't corrupt signal structs in itrace on rawhide utrace
authorRoland McGrath <roland@redhat.com>
Mon, 30 Nov 2009 20:27:21 +0000 (15:27 -0500)
committerFrank Ch. Eigler <fche@elastic.org>
Mon, 30 Nov 2009 20:33:38 +0000 (15:33 -0500)
* runtime/itrace.c (usr_itrace_report_signal): On modern utrace,
  must check/propagate utrace_signal_action().

runtime/itrace.c

index 03e1e40356fa07e75ac4d2bd50c65703a3c0881c..f2ed86f2cf7bb3fdff7718e2bed3558d19e15bf4 100644 (file)
@@ -131,9 +131,16 @@ static u32 usr_itrace_report_signal(u32 action,
 
        ui = rcu_dereference(engine->data);
        WARN_ON(!ui);
-       
-       if (info->si_signo != SIGTRAP || !ui)
-               return UTRACE_RESUME;
+
+#if defined(UTRACE_ORIG_VERSION) 
+        if (info->si_signo != SIGTRAP || !ui)
+         return UTRACE_RESUME;
+#else
+       if (utrace_signal_action(action) == UTRACE_SIGNAL_HANDLER ||
+            utrace_signal_action(action) == UTRACE_SIGNAL_REPORT ||
+           info->si_signo != SIGTRAP || !ui)
+         return UTRACE_RESUME | utrace_signal_action(action);
+#endif
 
 #if defined(UTRACE_ORIG_VERSION) && defined(CONFIG_PPC)
        /* Because of a ppc utrace bug, we need to stop the task here.
This page took 0.027204 seconds and 5 git commands to generate.