]> git.ipfire.org Git - thirdparty/glibc.git/commit
posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780)
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Mon, 17 Jul 2017 13:59:59 +0000 (10:59 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Wed, 9 Aug 2017 14:13:18 +0000 (11:13 -0300)
commit82efa1ffd43bed1494d20a4b86f6b15ac6bb5545
tree56f0d8077ce96ed980d47ec6337b9f1187a0be23
parent799859f6635d68487ea2472bd79d96a7639a1ab1
posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780)

Different than other architectures hppa-linux-gnu define different values
for ENOTSUP and EOPNOTSUPP, where the later is a Linux specific one.
This leads to tst-preadwritev{64}v2 tests failures:

$ ./testrun.sh misc/tst-preadvwritev2
error: tst-preadvwritev2-common.c:35: preadv2 failure did not set errno to ENOTSUP (223)
error: 1 test failures

The straightforward fix is to return the POSIX defined ENOTSUP on all
p{read,write}v{64}v2 implementations instead of Linux specific one.

Checked on x86_64-linux-gnu and the tst-preadwritev{64}v2 on
hppa-linux-gnu (although due the installed kernel on my testing system
the pwritev{64}v2 with an invalid flag still fails due a known kernel
issue [1]).

[BZ #21780]
* sysdeps/posix/preadv2.c (preadv2): Use ENOTSUP instead of
EOPNOTSUPP.
* sysdeps/posix/preadv64v2.c (preadv64v2): Likewise.
* sysdeps/posix/pwritev2.c (pwritev2): Likewise.
* sysdeps/posix/pwritev64v2.c (pwritev64v2): Likewise.
* sysdeps/unix/sysv/linux/preadv2.c (preadv2): Likewise.
* sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
* sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
* sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise.

[1] https://sourceware.org/ml/libc-alpha/2017-06/msg00726.html

Cherry-pick of 852d63120783fae5bf85a067320dc4ba1ed59f11
ChangeLog
sysdeps/posix/preadv2.c
sysdeps/posix/preadv64v2.c
sysdeps/posix/pwritev2.c
sysdeps/posix/pwritev64v2.c
sysdeps/unix/sysv/linux/preadv2.c
sysdeps/unix/sysv/linux/preadv64v2.c
sysdeps/unix/sysv/linux/pwritev2.c
sysdeps/unix/sysv/linux/pwritev64v2.c