]> granicus.if.org Git - procps-ng/commitdiff
Allow core file generation by ps command (rhbz#871825, rhbz#512857)
authorJaromir Capik <jcapik@redhat.com>
Wed, 12 Dec 2012 14:37:42 +0000 (15:37 +0100)
committerCraig Small <csmall@enc.com.au>
Thu, 13 Dec 2012 11:17:03 +0000 (22:17 +1100)
Since the ps command handles signals with it's own handler, it doesn't create
core files when something wrong happens. The attached patch restores the ps
command ability to create core files by calling the default handler once we
print our custom message. The original RH's workaround masked SIGABRT and
SIGSEGV signals and that would conflict with the original intention of the
custom signal handler and also with the filtering patch I sent in my previous
email. Moreover, this solution generates core for all relevant signals (SIGFPE,
etc.).

Bug-Redhat: http://bugzilla.redhat.com/871825
Bug-Redhat: http://bugzilla.redhat.com/512857
Reference: http://www.freelists.org/post/procps/PATCH-Allow-core-file-generation-by-ps-command-rhbz871825-rhbz512857

Signed-off-by: Craig Small <csmall@enc.com.au>
ps/display.c

index 85c50a10d2f71cf055908dcae6f842a20e6e4a60..b1f98bdc0f8dde4a0ddc6abb1073986f2e0477a8 100644 (file)
@@ -62,7 +62,9 @@ static void signal_handler(int signo){
     case SIGUSR2:
       exit(EXIT_FAILURE);
     default:
-      catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+      error_at_line(0, 0, __FILE__, __LINE__, "%s", _("please report this bug"));
+      signal(signo, SIG_DFL);  /* allow core file creation */
+      kill(getpid(), signo);
   }
 }