From: Oleg Nesterov <oleg@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Alex Kelly <alex.page.kelly@gmail.com>,
Andi Kleen <andi@firstfloor.org>, Cong Wang <amwang@redhat.com>,
Denys Vlasenko <vda.linux@googlemail.com>,
Jiri Moskovcak <jmoskovc@redhat.com>,
Neil Horman <nhorman@tuxdriver.com>,
linux-kernel@vger.kernel.org
Subject: [PATCH -mm] coredump: add support for %d=__get_dumpable() in core name
Date: Thu, 13 Sep 2012 19:28:17 +0200 [thread overview]
Message-ID: <20120913172817.GA11337@redhat.com> (raw)
https://bugzilla.redhat.com/show_bug.cgi?id=787135
Some coredump handlers want to create a core file in a way compatible
with standard behavior. Standard behavior with fs.suid_dumpable = 2
is to create core file with uid=gid=0. However, there was no way for
coredump handler to know that the process being dumped was suid'ed.
This patch adds the new %d specifier for format_corename() which
simply reports __get_dumpable(mm->flags), this is compatible with
/proc/sys/fs/suid_dumpable we already have.
By-discussion-with: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
---
fs/coredump.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/fs/coredump.c b/fs/coredump.c
index 1935b4d..aad8715 100644
--- a/fs/coredump.c
+++ b/fs/coredump.c
@@ -149,7 +149,7 @@ put_exe_file:
* name into corename, which must have space for at least
* CORENAME_MAX_SIZE bytes plus one byte for the zero terminator.
*/
-static int format_corename(struct core_name *cn, long signr)
+static int format_corename(struct core_name *cn, struct coredump_params *cprm)
{
const struct cred *cred = current_cred();
const char *pat_ptr = core_pattern;
@@ -194,9 +194,13 @@ static int format_corename(struct core_name *cn, long signr)
case 'g':
err = cn_printf(cn, "%d", cred->gid);
break;
+ case 'd':
+ err = cn_printf(cn, "%d",
+ __get_dumpable(cprm->mm_flags));
+ break;
/* signal that caused the coredump */
case 's':
- err = cn_printf(cn, "%ld", signr);
+ err = cn_printf(cn, "%ld", cprm->signr);
break;
/* UNIX time of coredump */
case 't': {
@@ -524,7 +528,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
*/
clear_thread_flag(TIF_SIGPENDING);
- ispipe = format_corename(&cn, signr);
+ ispipe = format_corename(&cn, &cprm);
if (ispipe) {
int dump_count;
--
1.5.5.1
next reply other threads:[~2012-09-13 17:26 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-13 17:28 Oleg Nesterov [this message]
2012-09-13 18:01 ` [PATCH -mm] coredump: add support for %d=__get_dumpable() in core name Neil Horman
2012-09-13 22:25 ` Andrew Morton
2012-09-14 12:30 ` [PATCH -mm] coredump-add-support-for-%d=__get_dumpable-in-core-name-fix Oleg Nesterov
2012-09-14 12:43 ` [PATCH] coredump: use SUID_DUMPABLE_ENABLED rather than hardcoded 1 Oleg Nesterov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120913172817.GA11337@redhat.com \
--to=oleg@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=alex.page.kelly@gmail.com \
--cc=amwang@redhat.com \
--cc=andi@firstfloor.org \
--cc=jmoskovc@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=vda.linux@googlemail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.