On Wed, Jan 29, 2014 at 11:57:20AM +0000, Nick Alcock wrote:> ssize_t ret = -EBADF;> > - if (pos < 0)> + f = fdget(fd);> + if ((pos < 0) && (!f.file || !unsigned_offsets(f.file))) {> + fdput(f);> return -EINVAL;> + }... and now pread(-1, ...) fails with EINVAL instead of EBADF.