From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Subject: Re: [AppArmor 01/41] Pass struct vfsmount to the inode_create LSM hook Date: Thu, 12 Apr 2007 11:12:37 +0100 Message-ID: <20070412101236.GD4095@ftp.linux.org.uk> References: <20070412090809.917795000@suse.de> <20070412090836.207973000@suse.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, linux-fsdevel@vger.kernel.org, chrisw@sous-sol.org, Tony Jones , Andreas Gruenbacher To: jjohansen@suse.de Return-path: Content-Disposition: inline In-Reply-To: <20070412090836.207973000@suse.de> Sender: linux-security-module-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Thu, Apr 12, 2007 at 02:08:10AM -0700, jjohansen@suse.de wrote: > This is needed for computing pathnames in the AppArmor LSM. Which is an argument against said LSM in current form. > - error = security_inode_create(dir, dentry, mode); > + error = security_inode_create(dir, dentry, nd ? nd->mnt : NULL, mode); is a clear sign that interface is wrong. Leaving aside the general idiocy of "we prohibit to do something with file if mounted here, but if there's another mountpoint, well, we just miss", an API of that kind is just plain wrong. Either you can live without seeing vfsmount in that method (in which case you shouldn't pass it at all), or you have a hole. NACK.