Messages in this thread | | | Subject | Re: [Patch] allow file truncations when both suid and write permissions set | From | Eric Paris <> | Date | Thu, 02 Jul 2009 08:12:19 -0400 |
| |
On Thu, 2009-07-02 at 18:14 +0800, Amerigo Wang wrote: > Eric Paris wrote: > > So NAK on both Amerigo's and Eric's patch. ATTR_FORCE is wrong. > > ATTR_FORCE here is going to force the security system to accept ALL of > > the attr changes, not just the ATTR_KILL_SUID and/or ATTR_KILL_SGID you > > |= in from should_remove_suid. > > You need to follow esandeen's recommendation, change file_remove_suid() > > to dentry_remove_suid() and then use dentry_remove_suid() in do_truncate > > instead of what you are currently trying to do (and I think that's > > supposed to be done under the i_mutex right?) > > > But file_remove_suid() actually adds ATTR_FORCE too, in __remove_suid()...
The difference being that it adds it to a private ia_valid that ONLY contains the SUID/SGID bits that we need to force the removal of. Not to the ia_valid that contains ATTR_SIZE and ATTR_FILE.
-Eric
| |