666 permissions broken (2.2.10ac12,2.2.11pre2)

Alan Cox (alan@lxorguk.ukuu.org.uk)
Wed, 21 Jul 1999 00:00:07 +0100 (BST)


> Thanks for the reply. I found it odd too. Let me know if you find
> anything.

Got it. I'm very glad you found that 8)

--- fs/ext2/inode.c.old Tue Jul 20 06:23:19 1999
+++ fs/ext2/inode.c Wed Jul 21 05:55:27 1999
@@ -707,15 +707,18 @@
unsigned int flags;

retval = -EPERM;
- if (iattr->ia_valid & ATTR_ATTR_FLAG &&
- ((!(iattr->ia_attr_flags & ATTR_FLAG_APPEND) !=
+ if (iattr->ia_valid & ATTR_ATTR_FLAG)
+ {
+ if((!(iattr->ia_attr_flags & ATTR_FLAG_APPEND) !=
!(inode->u.ext2_i.i_flags & EXT2_APPEND_FL)) ||
- (!(iattr->ia_attr_flags & ATTR_FLAG_IMMUTABLE) !=
- !(inode->u.ext2_i.i_flags & EXT2_IMMUTABLE_FL)))) {
+ (!(iattr->ia_attr_flags & ATTR_FLAG_IMMUTABLE) !=
+ !(inode->u.ext2_i.i_flags & EXT2_IMMUTABLE_FL))) {
if (!capable(CAP_LINUX_IMMUTABLE))
goto out;
- } else if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER))
+ }
+ else if ((current->fsuid != inode->i_uid) && !capable(CAP_FOWNER))
goto out;
+ }

if (iattr->ia_valid & ATTR_SIZE) {
off_t size = iattr->ia_size;

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