Re: 2.6.11 bug: unbacked private shared memory segments missing incore dump

From: Andrew Morton
Date: Mon Mar 21 2005 - 18:46:27 EST


Jochen Suckfuell <jo-lkml@xxxxxxxxxxxxx> wrote:
>
> Hello!
>
> Since 2.6.10, unbacked private shared memory allocated via shmget is not
> included in core dumps.

Can you please confirm that 2.6.12-rc1 fixed this?

Thanks.

> This is a simple example code demonstrating the bug:
>
> #include <sys/shm.h>
>
> int main(int argc, char ** argv)
> {
> int size = 1000;
> int id = shmget(IPC_PRIVATE, size, (IPC_CREAT | 0660));
> if(id < 0) return(1);
> int *buffer = (int *)shmat(id, 0, 0);
> int i;
> for(i = 0; i < 1000; i++)
> buffer[i] = i;
>
> // now dump core
> *((unsigned long *)1) = 0;
>
> // The private shared memory is not included in the core dump,
> // although it's not backed and cannot be accessed any more in any
> // way.
> return 0;
> }
>
> This bug was introduced in 2.6.10 by a patch to binfmt_elf.c that
> resulted in:
>
> static int maydump(struct vm_area_struct *vma)
> {
> /* Do not dump I/O mapped devices, shared memory, or special mappings */
> if (vma->vm_flags & (VM_IO | VM_SHARED | VM_RESERVED))
> return 0;
> ...
>
> (See the thread at
> http://www.ussg.iu.edu/hypermail/linux/kernel/0410.2/1890.html)
>
> Excluding all pages with VM_SHARED set is also excluding the unbacked
> private mapping and should be replaced by a more specific criterion.
>
> Bye
> Jochen
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/