summaryrefslogtreecommitdiffstats
path: root/fs/binfmt_elf_fdpic.c
diff options
context:
space:
mode:
authorMateusz Guzik <mguzik@redhat.com>2016-06-05 23:14:14 +0200
committerAl Viro <viro@zeniv.linux.org.uk>2016-06-07 22:07:09 -0400
commit1607f09c226d1378439c411baaaa020042750338 (patch)
tree664e5239468f2bc978c6b8c6f2fb64904c20f7e9 /fs/binfmt_elf_fdpic.c
parenta01e718f7241c53f564402f7acff373eed5bd166 (diff)
downloadlinux-1607f09c226d1378439c411baaaa020042750338.tar.gz
linux-1607f09c226d1378439c411baaaa020042750338.tar.bz2
linux-1607f09c226d1378439c411baaaa020042750338.zip
coredump: fix dumping through pipes
The offset in the core file used to be tracked with ->written field of the coredump_params structure. The field was retired in favour of file->f_pos. However, ->f_pos is not maintained for pipes which leads to breakage. Restore explicit tracking of the offset in coredump_params. Introduce ->pos field for this purpose since ->written was already reused. Fixes: a00839395103 ("get rid of coredump_params->written"). Reported-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Mateusz Guzik <mguzik@redhat.com> Reviewed-by: Omar Sandoval <osandov@fb.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/binfmt_elf_fdpic.c')
-rw-r--r--fs/binfmt_elf_fdpic.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
index 71ade0e556b7..203589311bf8 100644
--- a/fs/binfmt_elf_fdpic.c
+++ b/fs/binfmt_elf_fdpic.c
@@ -1787,7 +1787,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
goto end_coredump;
}
- if (!dump_skip(cprm, dataoff - cprm->file->f_pos))
+ if (!dump_skip(cprm, dataoff - cprm->pos))
goto end_coredump;
if (!elf_fdpic_dump_segments(cprm))