glibc/misc
Adhemerval Zanella a127df9f3e 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:30:30 -03:00
..
bits Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
sys Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
acct.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00: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 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00: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 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00: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 misc: Remove internal_function function attribute 2017-08-31 15:59:06 +02: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 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Makefile Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00: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 misc: Remove internal_function function attribute 2017-08-31 15:59:06 +02: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-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-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:30:30 -03:00
tst-preadvwritev2.c Fix misreported errno on preadv2/pwritev2 (BZ#23579) 2018-09-28 15:30:30 -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:30:30 -03:00
tst-preadvwritev-common.c preadv2/pwritev2: Handle offset == -1 [BZ #22753] 2018-09-28 15:15:06 -03: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 Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
ustat.h Thu Jul 18 04:33:21 1996 Roland McGrath <roland@baalperazim.frob.com> 1996-07-18 08:43:26 +00:00
utimes.c Update copyright dates with scripts/update-copyrights. 2018-01-01 00:32:25 +00:00
Versions Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03: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