Patchwork [maverick,maverick/ti-omap4,natty,natty/ti-omap4,CVE,1/2] xfs: validate acl count

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

Comments

Andy Whitcroft - Jan. 18, 2012, 11:28 a.m.
From: Christoph Hellwig <hch@infradead.org>

This prevents in-memory corruption and possible panics if the on-disk
ACL is badly corrupted.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Ben Myers <bpm@sgi.com>

(cherry-picked from commit fa8b18edd752a8b4e9d1ee2cd615b82c93cf8bba)
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, 2 insertions(+), 0 deletions(-)

Patch

diff --git a/fs/xfs/linux-2.6/xfs_acl.c b/fs/xfs/linux-2.6/xfs_acl.c
index 9f769b5..46556ee 100644
--- a/fs/xfs/linux-2.6/xfs_acl.c
+++ b/fs/xfs/linux-2.6/xfs_acl.c
@@ -42,6 +42,8 @@  xfs_acl_from_disk(struct xfs_acl *aclp)
 	int count, i;
 
 	count = be32_to_cpu(aclp->acl_cnt);
+	if (count > XFS_ACL_MAX_ENTRIES)
+		return ERR_PTR(-EFSCORRUPTED);
 
 	acl = posix_acl_alloc(count, GFP_KERNEL);
 	if (!acl)