On 21-Apr-20 12:06 PM, Feng Li wrote:
#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 gb = atoi(argv[1]);
     void* ptr = mmap(0, gb << 30, PROT_NONE, MAP_PRIVATE |
MAP_ANONYMOUS, -1, 0);
     if (ptr == (void*)-1) {
         perror("[-] mmap failed with MAP_PRIVATE | MAP_ANONYMOUS");
         exit(1);
     }
     while(1)
         sleep(1);
     return 0;
}

DONTDUMP is available since Linux 3.4. I presume our minimum kernel version is higher than that.

I have little idea of how dumping works, but reading the manpage for madvise, DONTDUMP should be the way to go here. Also, reading up on PROT_NONE, i can't find any references to this memory necessarily being excluded from core dumps.

That said, I've run the program above, and i got a core dump sized ~100K. Do i need any special configuration to trigger core dump that would include that anonymous memory?

--
Thanks,
Anatoly

Reply via email to