• Jungseung Lee's avatar
    fs/binfmt_elf.c: fix internal inconsistency relating to vma dump size · 52f5592e
    Jungseung Lee authored
    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: default avatarJungseung Lee <js07.lee@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
binfmt_elf.c 57 KB