提交 afabada9 编写于 作者: A Al Viro

elf{,_fdpic} coredump: get rid of pointless if (siginfo->si_signo)

we can't get to do_coredump() if that condition isn't satisfied...
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 ec57941e
...@@ -1833,14 +1833,12 @@ static int fill_note_info(struct elfhdr *elf, int phdrs, ...@@ -1833,14 +1833,12 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
const siginfo_t *siginfo, struct pt_regs *regs) const siginfo_t *siginfo, struct pt_regs *regs)
{ {
struct list_head *t; struct list_head *t;
struct core_thread *ct;
struct elf_thread_status *ets;
if (!elf_note_info_init(info)) if (!elf_note_info_init(info))
return 0; return 0;
if (siginfo->si_signo) {
struct core_thread *ct;
struct elf_thread_status *ets;
for (ct = current->mm->core_state->dumper.next; for (ct = current->mm->core_state->dumper.next;
ct; ct = ct->next) { ct; ct = ct->next) {
ets = kzalloc(sizeof(*ets), GFP_KERNEL); ets = kzalloc(sizeof(*ets), GFP_KERNEL);
...@@ -1858,7 +1856,6 @@ static int fill_note_info(struct elfhdr *elf, int phdrs, ...@@ -1858,7 +1856,6 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
sz = elf_dump_thread_status(siginfo->si_signo, ets); sz = elf_dump_thread_status(siginfo->si_signo, ets);
info->thread_status_size += sz; info->thread_status_size += sz;
} }
}
/* now collect the dump for the current */ /* now collect the dump for the current */
memset(info->prstatus, 0, sizeof(*info->prstatus)); memset(info->prstatus, 0, sizeof(*info->prstatus));
fill_prstatus(info->prstatus, current, siginfo->si_signo); fill_prstatus(info->prstatus, current, siginfo->si_signo);
......
...@@ -1561,6 +1561,8 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) ...@@ -1561,6 +1561,8 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
struct elf_shdr *shdr4extnum = NULL; struct elf_shdr *shdr4extnum = NULL;
Elf_Half e_phnum; Elf_Half e_phnum;
elf_addr_t e_shoff; elf_addr_t e_shoff;
struct core_thread *ct;
struct elf_thread_status *tmp;
/* /*
* We no longer stop all VM operations. * We no longer stop all VM operations.
...@@ -1596,10 +1598,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) ...@@ -1596,10 +1598,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
goto cleanup; goto cleanup;
#endif #endif
if (cprm->siginfo->si_signo) {
struct core_thread *ct;
struct elf_thread_status *tmp;
for (ct = current->mm->core_state->dumper.next; for (ct = current->mm->core_state->dumper.next;
ct; ct = ct->next) { ct; ct = ct->next) {
tmp = kzalloc(sizeof(*tmp), GFP_KERNEL); tmp = kzalloc(sizeof(*tmp), GFP_KERNEL);
...@@ -1618,7 +1616,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm) ...@@ -1618,7 +1616,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
sz = elf_dump_thread_status(cprm->siginfo->si_signo, tmp); sz = elf_dump_thread_status(cprm->siginfo->si_signo, tmp);
thread_status_size += sz; thread_status_size += sz;
} }
}
/* now collect the dump for the current */ /* now collect the dump for the current */
fill_prstatus(prstatus, current, cprm->siginfo->si_signo); fill_prstatus(prstatus, current, cprm->siginfo->si_signo);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册