From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [RFC 2/2] fs,proc: Respect FMODE_WRITE when opening /proc/pid/fd/N Date: Mon, 21 Apr 2014 17:30:58 +0100 Message-ID: <20140421163058.GS18016@ZenIV.linux.org.uk> References: <430cfc67aae9b9ad5eab4d293107285ad44c5fd9.1398097304.git.luto@amacapital.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Pavel Machek , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Theodore Ts'o , David Herrmann To: Andy Lutomirski Return-path: Content-Disposition: inline In-Reply-To: <430cfc67aae9b9ad5eab4d293107285ad44c5fd9.1398097304.git.luto@amacapital.net> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Mon, Apr 21, 2014 at 09:22:48AM -0700, Andy Lutomirski wrote: > +static int proc_may_follow(struct nameidata *nd, struct file *f) > +{ > + if (!nd) > + return 0; /* This is readlink, */ > + > + if ((nd->flags & LOOKUP_WRITE) && !(f->f_mode & FMODE_WRITE)) > + return -EACCES; > + > + return 0; > +} And this is just plain wrong. WTF are you making the traversal of symlink in the middle of pathname dependent on the open flags? NAK.