Fix decoding and dumping of readv syscall in case of short read

* defs.h (dumpiov_upto): New prototype.
(dumpiov): Change to a wrapper around dumpiov_upto.
* util.c (dumpiov): Rename to dumpiov_upto, add and check data_size
argument.
* io.c (SYS_FUNC(readv)): Call tprint_iov_upto instead
of tprint_iov and specify syscall return value as a data size limit.
* syscall.c (dumpio): In case of SEN_readv, call dumpiov_upto instead
of dumpiov and specify syscall return value as a data size limit.
* NEWS: Mention this fix.
* tests/readv.c: New file.
* tests/readv.test: New test.
* tests/Makefile.am (check_PROGRAMS): Add readv.
(TESTS): Add readv.test.
* tests/.gitignore: Add readv.
diff --git a/tests/Makefile.am b/tests/Makefile.am
index cf4e673..d683a6b 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -113,6 +113,7 @@
 	readdir \
 	readlink \
 	readlinkat \
+	readv \
 	restart_syscall \
 	rt_sigqueueinfo \
 	sched_xetaffinity \
@@ -249,6 +250,7 @@
 	readdir.test \
 	readlink.test \
 	readlinkat.test \
+	readv.test \
 	rt_sigqueueinfo.test \
 	sched_xetaffinity.test \
 	sched_xetattr.test \