lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1193432291.4721.27.camel@localhost>
Date:	Fri, 26 Oct 2007 22:58:11 +0200
From:	Miklos Szeredi <mszeredi@...e.cz>
To:	Andreas Gruenbacher <agruen@...e.de>
Cc:	jjohansen@...e.de, akpm@...ux-foundation.org,
	linux-kernel@...r.kernel.org, linux-security-module@...r.kernel.org
Subject: Re: [AppArmor 32/45] Enable LSM hooks to distinguish operations on
	file descriptors from operations on pathnames

On Fri, 2007-10-26 at 22:24 +0200, Andreas Gruenbacher wrote:
> On Friday 26 October 2007 13:30, Miklos Szeredi wrote:
> > There's a slight problem (other than HCH not liking it) with this
> > approach of passing the open file in iattr:  for special files, the
> > struct file pointer makes no sense to the filesystem, since it is always
> > opened by the generic functions.
> 
> So what do you think where the inodes come from for syscalls like fchmod? Out 
> of struct file, of course. But your f_op->getattr and f_op->setattr patches 
> are meant for passing struct file down to filesystems anyway, so that 
> completely contradicts what you are saying above.

For special files, f_op->fsetattr will be NULL, since
init_special_inode() will set up i_fop that way.

So the filesystem's fsetattr() will only be called for regular files
and/or directories, depending on how it sets up i_fop.

With the ia_file thing, the filesystem would receive the struct file
pointer in all cases.  So the posted patch would break AFS and FUSE,
because they unconditionally use ia_file if available and don't check
the file type.  They could check the file type, but still the interface
would be ugly.

> > So I think the correct solution (which was suggested by Trond and
> > others) is to define an f_op->fsetattr() method, which interested
> > filesystems can define.
> 
> That's nothing but a replacement for ATTR_FILE and iattr->ia_file. Except by 
> removing the ATTR_FILE flag, LSMs will no longer get that information for 
> distinguishing file descriptor operations from other operations.
> 
> AppArmor needs to know when notify_change is called on a file descriptor, but 
> it doesn't care about the file descriptor itself. So any way of passing along 
> that information will be fine.

Ah, so if we kept ATTR_FILE and got rid of iattr_file, would that be OK
for AppArmor? 

Thanks,
Miklos

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ