- merge revision 1.8
authorMark Huang <mlhuang@cs.princeton.edu>
Tue, 30 Nov 2004 16:44:31 +0000 (16:44 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Tue, 30 Nov 2004 16:44:31 +0000 (16:44 +0000)
date: 2004/11/23 15:07:34;  author: mlhuang;  state: Exp;  lines: +4 -4
- apply ioctl() patch to make sure that only superuser or someone
  capable of setting the immutable bit, can set the immulink bit

From: Sam Vilain <sam@vilain.net>
Re: [Vserver] [PATCH] immulink ioctl is not available on vs1.9.3-rc2,  even with CONFIG_VSERVER_LEGACY
To: vserver@list.linux-vserver.org
Date: 10/19/04 12:17 am

Here's the missing link.

fs/ext3/ioctl.c

index 37bd450..f58d497 100644 (file)
@@ -59,11 +59,11 @@ int ext3_ioctl (struct inode * inode, struct file * filp, unsigned int cmd,
                 *
                 * This test looks nicer. Thanks to Pauline Middelink
                 */
-               if ((oldflags & EXT3_IMMUTABLE_FL) ||
+               if (((oldflags & EXT3_IMMUTABLE_FL) ||
                        ((flags ^ oldflags) &
-                       (EXT3_APPEND_FL | EXT3_IMMUTABLE_FL))) {
-                       if (!capable(CAP_LINUX_IMMUTABLE))
-                               return -EPERM;
+                        (EXT3_APPEND_FL | EXT3_IMMUTABLE_FL | EXT3_IUNLINK_FL)))
+                   && !capable(CAP_LINUX_IMMUTABLE)) {
+                       return -EPERM;          
                }
 
                /*