aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2012-03-02 10:43:48 -0800
committerPaul Gortmaker <paul.gortmaker@windriver.com>2012-08-17 15:35:00 -0400
commit5800b0b508a0af7d6a0d91eeef3d159be80534ab (patch)
tree6813de8d8a8c7854ebf1340afb45381e733268cf /fs
parent5bfc315baf02e3f3093c48af4ce7c798ea9778aa (diff)
regset: Prevent null pointer reference on readonly regsets
commit c8e252586f8d5de906385d8cf6385fee289a825e upstream. The regset common infrastructure assumed that regsets would always have .get and .set methods, but not necessarily .active methods. Unfortunately people have since written regsets without .set methods. Rather than putting in stub functions everywhere, handle regsets with null .get or .set methods explicitly. Signed-off-by: H. Peter Anvin <hpa@zytor.com> Reviewed-by: Oleg Nesterov <oleg@redhat.com> Acked-by: Roland McGrath <roland@hack.frob.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/binfmt_elf.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 535e763ab1a..c21da8aebe4 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -1414,7 +1414,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
for (i = 1; i < view->n; ++i) {
const struct user_regset *regset = &view->regsets[i];
do_thread_regset_writeback(t->task, regset);
- if (regset->core_note_type &&
+ if (regset->core_note_type && regset->get &&
(!regset->active || regset->active(t->task, regset))) {
int ret;
size_t size = regset->n * regset->size;