Re: segfault message supressed with su -c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/11/2012 04:01 PM, Ondrej Oprala wrote:
Hi,
I've written a tiny patch that should fix this issue with su:
https://bugzilla.redhat.com/show_bug.cgi?id=747592.
None of the shells' output propagates back
to the shell where su was called (except TCSH, which reports segfault
to stdout; I've tested this with sh,ksh,zsh,bash).
So, with this patch, su should print a warning if
WIFSIGNALED(status) && WCOREDUMP(status) is true.

Cheers,
  Ondrej

DIFF


From d4776f487e283649d65be3f3865141a0171a80e7 Mon Sep 17 00:00:00 2001
From: Ondrej Oprala<ooprala@xxxxxxxxxx>
Date: Tue, 11 Sep 2012 16:39:17 +0200
Subject: [PATCH] su: add segmentation fault reporting of the child process

Child processes that ended with segmentation fault previously
indicated this with return status only. The report is now more
verbose if core dump is allowed.
---
  login-utils/su-common.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/login-utils/su-common.c b/login-utils/su-common.c
index 23ad57d..b0dbed2 100644
--- a/login-utils/su-common.c
+++ b/login-utils/su-common.c
@@ -300,7 +300,11 @@ create_watching_parent (void)
  	}
        if (pid != (pid_t)-1)
  	if (WIFSIGNALED (status))
-	  status = WTERMSIG (status) + 128;
+	  {
+	    status = WTERMSIG (status) + 128;
+	    if (WCOREDUMP (status))
+	      fprintf (stderr, _("Segmentation fault (core dumped)\n"));
+	  }
  	else
  	  status = WEXITSTATUS (status);
        else
-- 1.7.11.4

You'll need to key on WTERMSIG (status).
"Segmentation fault" will not always be appropriate.
You'll get a core just with Ctrl-\ (SIGQUIT) too for example.
Something along the lines of:

"%s (core dumped)", strsignal (WTERMSIG (status))

cheers,
Pádraig.
--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux