[PATCH] posix: Fix generic p{read,write}v buffer allocation (BZ#22457)

Florian Weimer fw@deneb.enyo.de
Thu Nov 23 19:08:00 GMT 2017


* Adhemerval Zanella:

> +  size_t mmap_size = ALIGN_UP (bytes, GLRO(dl_pagesize));
> +  void *buffer = __mmap (NULL, mmap_size, PROT_READ | PROT_WRITE,
> +		         MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> +  if (__glibc_unlikely (buffer == MAP_FAILED)
> +      || __glibc_unlikely (!PTR_IS_ALIGNED (buffer, GLRO(dl_pagesize))))
>      return -1;

I don't think POSIX requires that the length of the mapping is a
multiple of the page size.  You could probably drop the alignment
check, too, because I don't really see any reason why the alignment
requirement would be related to the page size.



More information about the Libc-alpha mailing list