summaryrefslogtreecommitdiffstats
path: root/login-utils/su-common.c
diff options
context:
space:
mode:
authorKarel Zak2013-10-02 14:43:17 +0200
committerKarel Zak2013-10-02 14:43:17 +0200
commit0e8edc9f9ef398e0b0d3104a44c75722b66e8f96 (patch)
tree8576916be42b1a1f8ee26e9b9e71c34a5e96c4b3 /login-utils/su-common.c
parentfdisk: fix possible memleak [coverity scan] (diff)
downloadkernel-qcow2-util-linux-0e8edc9f9ef398e0b0d3104a44c75722b66e8f96.tar.gz
kernel-qcow2-util-linux-0e8edc9f9ef398e0b0d3104a44c75722b66e8f96.tar.xz
kernel-qcow2-util-linux-0e8edc9f9ef398e0b0d3104a44c75722b66e8f96.zip
su: fix caught_signal logic and initialize oldact [coverity scan]
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'login-utils/su-common.c')
-rw-r--r--login-utils/su-common.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/login-utils/su-common.c b/login-utils/su-common.c
index 858af0176..7f1b505bf 100644
--- a/login-utils/su-common.c
+++ b/login-utils/su-common.c
@@ -288,6 +288,8 @@ create_watching_parent (void)
else
_pam_session_opened = 1;
+ memset(oldact, 0, sizeof(oldact));
+
child = fork ();
if (child == (pid_t) -1)
{
@@ -408,6 +410,9 @@ create_watching_parent (void)
sigaction(SIGQUIT, &oldact[2], NULL);
break;
default:
+ /* just in case that signal stuff initialization failed and
+ * caught_signal = true */
+ caught_signal = SIGKILL;
break;
}
kill(0, caught_signal);