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

Adhemerval Zanella adhemerval.zanella@linaro.org
Thu Nov 23 21:37:00 GMT 2017



On 23/11/2017 17:08, Florian Weimer wrote:
> * 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.
> 

Indeed we do not need to align to page size, however the alignment
requirement was the motivation to actually change its implementation
(check commit message for c79a72aa5cb8357c216a71015c7448a9259c8531).



More information about the Libc-alpha mailing list