Thread (54 messages) 54 messages, 9 authors, 2020-11-02

RE: Buggy commit tracked to: "Re: [PATCH 2/9] iov_iter: move rw_copy_check_uvector() into lib/iov_iter.c"

From: David Laight <hidden>
Date: 2020-10-22 16:50:14
Also in: io-uring, keyrings, linux-arch, linux-arm-kernel, linux-block, linux-fsdevel, linux-mips, linux-mm, linux-s390, linux-scsi, linuxppc-dev, lkml, netdev, sparclinux

From: Matthew Wilcox <willy@infradead.org>
Sent: 22 October 2020 17:41

On Thu, Oct 22, 2020 at 04:35:17PM +0000, David Laight wrote:
quoted
Wait...
readv(2) defines:
	ssize_t readv(int fd, const struct iovec *iov, int iovcnt);
It doesn't really matter what the manpage says.  What does the AOSP
libc header say?
The only copy I can find is:

/usr/include/x86_64-linux-gnu/sys/uio.h:extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count)
/usr/include/x86_64-linux-gnu/sys/uio.h-  __wur;

and not surprisingly agrees.
POSIX and/or TOG will (more or less) mandate the prototype.
quoted
But the syscall is defined as:

SYSCALL_DEFINE3(readv, unsigned long, fd, const struct iovec __user *, vec,
                unsigned long, vlen)
{
        return do_readv(fd, vec, vlen, 0);
}
I wonder when the high bits of 'fd' get zapped?

	David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help