From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [PATCH] vfs: respect FMODE_UNSIGNED_OFFSET in p(read|write)[v]*(). Date: Wed, 29 Jan 2014 15:18:12 +0000 Message-ID: <20140129151812.GJ10323@ZenIV.linux.org.uk> References: <87ppnbf1b3.fsf@spindle.srvr.nix> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Nick Alcock Return-path: Content-Disposition: inline In-Reply-To: <87ppnbf1b3.fsf@spindle.srvr.nix> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org 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.