Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

mremap(2) kernel diagnostic assertion for NULL address


I just got hit by a kernel diagnostic assertion, with a mremap(2) call
with a NULL value for old address ...

panic: kernel diagnostic assertion "&map->header != entry" failed:
file "/local/src/NetBSD/src/sys/uvm/uvm_mremap.c", line 62
fatal breakpoint trap in supervisor mode
trap type 1 code 0 rip ffffffff80230595 cs 8 rflags 246 cr2
7f7ffdb8a0f0 cpl 0 rsp ffff800051f57a50
Stopped in pid 568.1 (mremap) at        netbsd:breakpoint+0x5:  leave
db{1}> bt
breakpoint() at netbsd:breakpoint+0x5
panic() at netbsd:panic+0x29a
__kernassert() at netbsd:__kernassert+0x2d
uvm_mremap() at netbsd:uvm_mremap+0x51e
sys_mremap() at netbsd:sys_mremap+0x7f
syscall() at netbsd:syscall+0xb7

Small testscase attached ...

Thanks in advance.

Nicolas Joly

Biological Software and Databanks.
Institut Pasteur, Paris.
#include <sys/mman.h>
#include <err.h>
#include <stdlib.h>

int main() {
  size_t len1, len2;
  void *buf;

  len1 = 4096; len2 = 2 * len1;

  buf = mremap(NULL, len1, NULL, len2, 0);
  if (buf != MAP_FAILED)
    err(1, "mremap failed");

  return 0; }

Home | Main Index | Thread Index | Old Index