]> git.baikalelectronics.ru Git - kernel.git/commit
fs/binfmt_elf.c: fix internal inconsistency relating to vma dump size
authorJungseung Lee <js07.lee@gmail.com>
Wed, 10 Dec 2014 23:52:16 +0000 (15:52 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 11 Dec 2014 01:41:12 +0000 (17:41 -0800)
commit439a8588750b3a258c3781a591ee2cc9e8bcd986
tree55bdcdd7e82121f8c8e071562917ce9dbc964efe
parentbbb06008e5c5f06c6c8e8ea7c020e370ff851876
fs/binfmt_elf.c: fix internal inconsistency relating to vma dump size

vma_dump_size() has been used several times on actual dumper and it is
supposed to return the same value for the same vma.  But vma_dump_size()
could return different values for same vma.

The known problem case is concurrent shared memory removal.  If a vma is
used for a shared memory and that shared memory is removed between
writing program header and dumping vma memory, this will result in a
dump file which is internally consistent.

To fix the problem, we set baseline to get dump size and store the size
into vma_filesz and always use the same vma dump size which is stored in
vma_filsz.  The consistnecy with reality is not actually guranteed, but
it's tolerable since that is fully consistent with base line.

Signed-off-by: Jungseung Lee <js07.lee@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/binfmt_elf.c