On 23-Apr-20 7:36 AM, Feng Li wrote:
Hi, I have tested as follows, the core dump file is ~ 200KB. It should generate one core dump file each crash.#include <sys/mman.h> #include <time.h> #include <stdint.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { // FIXME(fengli): XXXXX uint64_t size = 1<<30; void* ptr = mmap(0, size , PROT_READ, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (ptr == (void*)-1) { perror("[-] mmap failed with MAP_PRIVATE | MAP_ANONYMOUS"); exit(1); } if (madvise(ptr, size , MADV_DONTDUMP) != 0) perror("[-] madvise failed"); while(1) sleep(1); return 0; }
That's odd, your code works. Mine, even though it did the same thing, didn't work the same way. My compiler must like you more than it likes me :) (or perhaps i had a typo...)
Anyway, i can see that this indeed prevents core dumps on madvise'd memory (i've also tested it with PROT_NONE).
I'll go ahead and ack the original patch then. -- Thanks, Anatoly

