pppd/tdb.c does this: tdb->map_ptr = (void *)mmap(NULL, tdb->map_size, tdb->read_only?PROT_READ:PROT_READ|PROT_WRITE, MAP_SHARED | MAP_FILE, tdb->fd, 0); If the mmap() fails (some filesystems don't do shared writable mappings) then mmap will return -1. Then it does this: if (tdb->map_ptr) { memcpy(offset + (char *)tdb->map_ptr, buf, len); } else { /* .... lseek/write ... */ } Then it dies.
Created attachment 61804 [details] Patch to make it actually check mmap() return value.
Created attachment 61805 [details] s/(void *)-1/MAP_FAILED/
Please verify this with a newer version of Red Hat Enterprise Linux or Fedora Core and reopen it against the new version if it still occurs. Closing as "not a bug" for now.