Patchwork [maverick,maverick/ti-omap4,natty,natty/ti-omap4,CVE,2/2] xfs: fix acl count validation in xfs_acl_from_disk()

login
register
mail settings
Submitter Andy Whitcroft
Date Jan. 18, 2012, 11:28 a.m.
Message ID <1326886110-1911-3-git-send-email-apw@canonical.com>
Download mbox | patch
Permalink /patch/136591/
State New
Headers show

Comments

Andy Whitcroft - Jan. 18, 2012, 11:28 a.m.
From: Xi Wang <xi.wang@gmail.com>

Commit fa8b18ed didn't prevent the integer overflow and possible
memory corruption.  "count" can go negative and bypass the check.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>

(cherry-picked from commit 093019cf1b18dd31b2c3b77acce4e000e2cbc9ce)
CVE-2012-0038
BugLink: http://bugs.launchpad.net/bugs/917706
Signed-off-by: Andy Whitcroft <apw@canonical.com>
---
 fs/xfs/linux-2.6/xfs_acl.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

Patch

diff --git a/fs/xfs/linux-2.6/xfs_acl.c b/fs/xfs/linux-2.6/xfs_acl.c
index 46556ee..3423aba 100644
--- a/fs/xfs/linux-2.6/xfs_acl.c
+++ b/fs/xfs/linux-2.6/xfs_acl.c
@@ -39,7 +39,7 @@  xfs_acl_from_disk(struct xfs_acl *aclp)
 	struct posix_acl_entry *acl_e;
 	struct posix_acl *acl;
 	struct xfs_acl_entry *ace;
-	int count, i;
+	unsigned int count, i;
 
 	count = be32_to_cpu(aclp->acl_cnt);
 	if (count > XFS_ACL_MAX_ENTRIES)