aout32 coredump compat fix
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 22 Jun 2013 07:01:38 +0000 (11:01 +0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 22 Jun 2013 07:01:38 +0000 (11:01 +0400)
dump_seek() does SEEK_CUR, not SEEK_SET; native binfmt_aout
handles it correctly (seeks by PAGE_SIZE - sizeof(struct user),
getting the current position to PAGE_SIZE), compat one seeks
by PAGE_SIZE and ends up at PAGE_SIZE + already written...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/x86/ia32/ia32_aout.c

index 805078e080133bbdb1eab29f9ff742ba55a54955..52ff81cce008e6dbaed3d3a3b290ea6c88412897 100644 (file)
@@ -192,7 +192,7 @@ static int aout_core_dump(long signr, struct pt_regs *regs, struct file *file,
        /* struct user */
        DUMP_WRITE(&dump, sizeof(dump));
        /* Now dump all of the user data.  Include malloced stuff as well */
-       DUMP_SEEK(PAGE_SIZE);
+       DUMP_SEEK(PAGE_SIZE - sizeof(dump));
        /* now we start writing out the user space info */
        set_fs(USER_DS);
        /* Dump the data area */