SOURCES (LINUX_2_6): linux-2.6-vs2.1.patch - fixed security issue ...
baggins
baggins at pld-linux.org
Thu Apr 27 11:45:11 CEST 2006
Author: baggins Date: Thu Apr 27 09:45:11 2006 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- fixed security issue with context capabilities
---- Files affected:
SOURCES:
linux-2.6-vs2.1.patch (1.1.2.15 -> 1.1.2.16)
---- Diffs:
================================================================
Index: SOURCES/linux-2.6-vs2.1.patch
diff -u SOURCES/linux-2.6-vs2.1.patch:1.1.2.15 SOURCES/linux-2.6-vs2.1.patch:1.1.2.16
--- SOURCES/linux-2.6-vs2.1.patch:1.1.2.15 Thu Apr 20 16:07:05 2006
+++ SOURCES/linux-2.6-vs2.1.patch Thu Apr 27 11:45:05 2006
@@ -7436,7 +7436,7 @@
retval = -EPERM;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SECURE_MOUNT))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SECURE_MOUNT)))
goto dput_and_out;
retval = do_umount(nd.mnt, flags);
@@ -7496,7 +7496,7 @@
struct super_block *sb = nd->mnt->mnt_sb;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SECURE_REMOUNT))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SECURE_REMOUNT)))
return -EPERM;
if (!check_mnt(nd->mnt))
@@ -7505,7 +7505,7 @@
struct vfsmount *p;
int err = 0;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SECURE_MOUNT))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SECURE_MOUNT)))
return -EPERM;
if (!old_name || !*old_name)
return -EINVAL;
@@ -7514,7 +7514,7 @@
/* we need capabilities... */
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SECURE_MOUNT))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SECURE_MOUNT)))
return -EPERM;
mnt = do_kern_mount(type, flags, name, data);
@@ -7572,7 +7572,7 @@
return 0;
- if (!capable(CAP_SYS_ADMIN)) {
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SECURE_MOUNT)) {
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SECURE_MOUNT))) {
err = -EPERM;
goto out;
}
@@ -9083,12 +9083,12 @@
if (((type == USRQUOTA && current->euid != id) ||
(type == GRPQUOTA && !in_egroup_p(id))) &&
- !capable(CAP_SYS_ADMIN))
-+ !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ !(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return -EPERM;
}
else if (cmd != Q_GETFMT && cmd != Q_SYNC && cmd != Q_GETINFO)
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return -EPERM;
return 0;
@@ -9141,11 +9141,11 @@
if (((type == XQM_USRQUOTA && current->euid != id) ||
(type == XQM_GRPQUOTA && !in_egroup_p(id))) &&
- !capable(CAP_SYS_ADMIN))
-+ !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ !(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return -EPERM;
} else if (cmd != Q_XGETQSTAT && cmd != Q_XQUOTASYNC) {
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return -EPERM;
}
@@ -11081,7 +11081,7 @@
+ sb = ERR_PTR(-EPERM);
+ if ((type->fs_flags & FS_BINARY_MOUNTDATA) &&
-+ !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_BINARY_MOUNT))
++ !(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_BINARY_MOUNT)))
+ goto out;
+
+ sb = ERR_PTR(-ENOMEM);
@@ -11711,7 +11711,7 @@
int nculprits;
- if (!force && !capable(CAP_SYS_ADMIN))
-+ if (!force && !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!force && !(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return XFS_ERROR(EPERM);
/*
* No file system can have quotas enabled on disk but not in core.
@@ -11720,7 +11720,7 @@
xfs_inode_t *qip;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return XFS_ERROR(EPERM);
error = 0;
if (!XFS_SB_VERSION_HASQUOTA(&mp->m_sb) || flags == 0) {
@@ -11729,7 +11729,7 @@
__int64_t sbflags;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return XFS_ERROR(EPERM);
flags &= (XFS_ALL_QUOTA_ACCT | XFS_ALL_QUOTA_ENFD);
@@ -11738,7 +11738,7 @@
xfs_qcnt_t hard, soft;
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_QUOTA_CTL))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_QUOTA_CTL)))
return XFS_ERROR(EPERM);
if ((newlim->d_fieldmask &
@@ -19238,7 +19238,7 @@
char tmp[__NEW_UTS_LEN];
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SET_UTSNAME))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SET_UTSNAME)))
return -EPERM;
if (len < 0 || len > __NEW_UTS_LEN)
return -EINVAL;
@@ -19279,7 +19279,7 @@
char tmp[__NEW_UTS_LEN];
- if (!capable(CAP_SYS_ADMIN))
-+ if (!capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SET_UTSNAME))
++ if (!(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SET_UTSNAME)))
return -EPERM;
if (len < 0 || len > __NEW_UTS_LEN)
return -EINVAL;
@@ -19301,7 +19301,7 @@
old_rlim = current->signal->rlim + resource;
if ((new_rlim.rlim_max > old_rlim->rlim_max) &&
- !capable(CAP_SYS_RESOURCE))
-+ !capable(CAP_SYS_RESOURCE) && !vx_ccaps(VXC_SET_RLIMIT))
++ !(capable(CAP_SYS_RESOURCE) && vx_ccaps(VXC_SET_RLIMIT)))
return -EPERM;
if (resource == RLIMIT_NOFILE && new_rlim.rlim_max > NR_OPEN)
return -EPERM;
@@ -28395,7 +28395,7 @@
{
- if ((type != 3 && type != 10) && !capable(CAP_SYS_ADMIN))
+ if ((type != 3 && type != 10) &&
-+ !capable(CAP_SYS_ADMIN) && !vx_ccaps(VXC_SYSLOG))
++ !(capable(CAP_SYS_ADMIN) && vx_ccaps(VXC_SYSLOG)))
return -EPERM;
return 0;
}
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/linux-2.6-vs2.1.patch?r1=1.1.2.15&r2=1.1.2.16&f=u
More information about the pld-cvs-commit
mailing list