glibc/misc
Adhemerval Zanella 044c96f0d5 Fix misreported errno on preadv2/pwritev2 (BZ#23579)
The fallback code of Linux wrapper for preadv2/pwritev2 executes
regardless of the errno code for preadv2, instead of the case where
the syscall is not supported.

This fixes it by calling the fallback code iff errno is ENOSYS. The
patch also adds tests for both invalid file descriptor and invalid
iov_len and vector count.

The only discrepancy between preadv2 and fallback code regarding
error reporting is when an invalid flags are used.  The fallback code
bails out earlier with ENOTSUP instead of EINVAL/EBADF when the syscall
is used.

Checked on x86_64-linux-gnu on a 4.4.0 and 4.15.0 kernel.

	[BZ #23579]
	* misc/tst-preadvwritev2-common.c (do_test_with_invalid_fd): New
	test.
	* misc/tst-preadvwritev2.c, misc/tst-preadvwritev64v2.c (do_test):
	Call do_test_with_invalid_fd.
	* sysdeps/unix/sysv/linux/preadv2.c (preadv2): Use fallback code iff
	errno is ENOSYS.
	* sysdeps/unix/sysv/linux/preadv64v2.c (preadv64v2): Likewise.
	* sysdeps/unix/sysv/linux/pwritev2.c (pwritev2): Likewise.
	* sysdeps/unix/sysv/linux/pwritev64v2.c (pwritev64v2): Likewise.

(cherry picked from commit 7a16bdbb9f)
2018-09-28 15:32:43 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sys Add <bits/indirect-return.h> 2018-07-24 07:55:47 -07:00
acct.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
allocate_once.c Implement allocate_once for atomic initialization with allocation 2018-05-23 15:27:01 +02:00
ar.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
bug18240.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
bug-hsearch1.c
chflags.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
chroot.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
daemon.c
dirname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
efgcvt_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
efgcvt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
err.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
err.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
error.c error, error_at_line: Add missing va_end calls 2018-08-14 10:41:04 +02:00
error.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fchflags.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fdatasync.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fgetxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
flistxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fremovexattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fsetxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fstab.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
fstab.h
fsync.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ftruncate64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ftruncate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
futimes.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
futimesat.c Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
getauxval.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getclktck.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getdomain.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getdtsz.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
gethostid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getloadavg.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getpass.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
getttyent.c Fix -Os getc_unlocked linknamespace, localplt issues (bug 15105, bug 19463). 2018-02-21 18:01:11 +00:00
getusershell.c
getxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
gtty.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
hsearch_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
hsearch.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ifunc-impl-list.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
init-misc.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
insremque.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ioctl.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lgetxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
libgen.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
listxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
llistxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lremovexattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lsearch.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lsetxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
lutimes.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
madvise.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
makedev.c Fix -Os gnu_dev_* linknamespace, localplt issues (bug 15105, bug 19463). 2018-02-07 14:57:31 +00:00
Makefile misc: New test misc/tst-gethostid 2018-09-20 12:41:17 +02:00
mincore.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkdtemp.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkostemp64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkostemp.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkostemps64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkostemps.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkstemp64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkstemp.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkstemps64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mkstemps.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mktemp.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mlockall.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mmap64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mmap.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mntent_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mntent.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mntent.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
mprotect.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
msync.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
munlock.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
munlockall.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
munmap.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv64v2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
preadv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pselect.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ptrace.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev64v2.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
pwritev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
qefgcvt_r.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
qefgcvt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
readv.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
reboot.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
regexp.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
regexp.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
remap_file_pages.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
removexattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
revoke.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sbrk.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
search.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
select.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setdomain.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setegid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
seteuid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sethostid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sethostname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setregid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setreuid.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
setxattr.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sgtty.h Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sstk.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
stab.h
stty.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
swapoff.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
swapon.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sync.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syncfs.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syscall.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
syscall.h
sysexits.h
syslog.c Fix -Os putc_unlocked, fputc_unlocked linknamespace, localplt issues (bug 15105, bug 19463). 2018-02-21 18:02:24 +00:00
syslog.h
truncate64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
truncate.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tsearch.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-allocate_once.c Implement allocate_once for atomic initialization with allocation 2018-05-23 15:27:01 +02:00
tst-atomic-long.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-atomic.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-dirname.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-efgcvt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-empty.c
tst-error1.c
tst-fdset.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-gethostid.c misc: New test misc/tst-gethostid 2018-09-20 12:41:17 +02:00
tst-hsearch.c
tst-insremque.c
tst-makedev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-mntent2.c
tst-mntent-blank-corrupt.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-mntent-blank-passno.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-mntent.c
tst-preadvwritev2-common.c Fix misreported errno on preadv2/pwritev2 (BZ#23579) 2018-09-28 15:32:43 -03:00
tst-preadvwritev2.c Fix misreported errno on preadv2/pwritev2 (BZ#23579) 2018-09-28 15:32:43 -03:00
tst-preadvwritev64.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-preadvwritev64v2.c Fix misreported errno on preadv2/pwritev2 (BZ#23579) 2018-09-28 15:32:43 -03:00
tst-preadvwritev-common.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-02-02 10:46:26 +01:00
tst-preadvwritev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-pselect.c misc/tst-pselect.c: Add copyright header 2018-01-02 22:07:59 +01:00
tst-tsearch.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ttyent.h
ttyslot.c
ualarm.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
usleep.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ustat.c Deprecate ustat syscall interface 2018-05-02 08:43:31 -03:00
utimes.c Add missing start-of-file descriptive comment. 2018-03-06 09:21:04 +01:00
Versions Implement allocate_once for atomic initialization with allocation 2018-05-23 15:27:01 +02:00
vhangup.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
writev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00