posix: Fix generic p{read,write}v buffer allocation (BZ#22457)
commitc45d78aac47db08bc8ea7641c5330cccaecd3ddb
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 22 Nov 2017 20:02:20 +0000 (22 18:02 -0200)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 24 Nov 2017 14:16:15 +0000 (24 12:16 -0200)
tree769aca2259f4781214044cb87e1d326955bc866e
parent3ffc4cc1ad37fb36e419c9a3a72e1916d7d893d3
posix: Fix generic p{read,write}v buffer allocation (BZ#22457)

As described in BZ#22457 an interpose malloc can free an invalid
pointer for fallback preadv implementation.  Fortunately this is
just and issue on microblaze-linux-gnu running kernels older than
3.15.  This patch fixes it by calling mmap/unmap instead of
posix_memalign/ free.

Checked on microblaze-linux-gnu check with run-built-tests=no and
by using the sysdeps/posix implementation on x86_64-linux-gnu (just
for sanity test where it shown no regression).

[BZ #22457]
* sysdeps/posix/preadv_common.c (PREADV): Use mmap/munmap instead of
posix_memalign/free.
* sysdeps/posix/pwritev_common.c (PWRITEV): Likewise.
ChangeLog
sysdeps/posix/preadv_common.c
sysdeps/posix/pwritev_common.c