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

Reply via email to