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 .. 2009-01-23 20:41:36 +00:00
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 Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
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 Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
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 Use (void) in no-arguments function definitions. 2013-06-08 00:22:23 +00:00
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 Update. 1997-06-21 02:59:26 +00:00
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 update from main archive 960107 1997-01-07 23:29:44 +00:00
sysexits.h Update. 1999-06-09 13:08:30 +00:00
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 initial import 1995-02-18 01:27:10 +00:00
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 Move all tests out of the csu subdirectory 2016-12-21 11:52:19 +01:00
tst-error1.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
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 Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-insremque.c [BZ #2766] 2006-06-17 17:01:42 +00:00
tst-makedev.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
tst-mntent2.c Fix warning in misc/tst-mntent2.c. 2014-12-16 10:27:16 +01:00
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 getmntent: fix memory corruption w/blank lines [BZ #18887] 2015-08-29 18:07:00 -04:00
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 Remove pre-ISO C support 2012-01-07 23:57:22 -05:00
ttyslot.c As a minor cleanup remove the (r)index defines from include/string.h as 2017-02-06 18:15:18 +00:00
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