[PATCH -tip 0/2] Fix mm->flags consistency issue in coredump

From: Masami Hiramatsu
Date: Tue Nov 17 2009 - 22:55:38 EST



Hi,

These patches are for fixing coredump mm->flags consistency issue.

---
1787 if (mm->core_state || !get_dumpable(mm)) { <- (1)
1788 up_write(&mm->mmap_sem);
1789 put_cred(cred);
1790 goto fail;
1791 }
1792
[...]
1798 if (get_dumpable(mm) == 2) { /* Setuid core dump mode */ <-(2)
1799 flag = O_EXCL; /* Stop rewrite attacks */
1800 cred->fsuid = 0; /* Dump root private */
1801 }
---

Since dumpable bits are not protected by lock, there is a
chance to change these bits between (1) and (2).

To solve this issue, this patch copies mm->flags to
coredump_params.mm_flags at the beginning of do_coredump() and uses it instead of get_dumpable() while dumping core.
This series also introduce coredump parameter structure
for simplify bimfmt->core_dump interface.

Thank you,

---

Masami Hiramatsu (2):
Pass mm->flags as a coredump parameter for consistency
mm: Introduce coredump parameter structure


fs/binfmt_aout.c | 13 ++++++-----
fs/binfmt_elf.c | 50 +++++++++++++++++++----------------------
fs/binfmt_elf_fdpic.c | 38 ++++++++++++-------------------
fs/binfmt_flat.c | 6 ++---
fs/binfmt_som.c | 2 +-
fs/exec.c | 58 ++++++++++++++++++++++++++++++-----------------
include/linux/binfmts.h | 11 ++++++++-
7 files changed, 97 insertions(+), 81 deletions(-)

--
Masami Hiramatsu

Software Engineer
Hitachi Computer Products (America), Inc.
Software Solutions Division
e-mail: mhiramat@xxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/