title: why we can mmap to a file but exceed the file size?
body: <p>For example.</p>
  
  <pre><code>fd = ::open ("/test.txt", O_RDONLY, 0);
  struct stat buf;
  fstat(fd, &amp;buf);
  char* addr = (char*)::mmap(NULL, buf.st_size + 10, PROT_READ, MAP_PRIVATE | MAP_POPULATE, fd, 0);
  </code></pre>
  
  <p>Notice that I mapped <strong>+ 10</strong> here.
  But it still works?</p>
  
  <p><strong>Why system does NOT apply any check?
  Is it dangerous?</strong></p>
  
  <p>Thanks</p>