We've seen cases where people passed negative numbers to posix_acl_alloc() and we fixed the caller. For example 093019cf1b "xfs: fix acl count validation in xfs_acl_from_disk()". But there are other places which might be affected like ext4_acl_from_disk() which checks for negative but doesn't check an upper limit. Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> diff --git a/fs/posix_acl.c b/fs/posix_acl.c index cea4623..cd7fd2f 100644 --- a/fs/posix_acl.c +++ b/fs/posix_acl.c @@ -46,7 +46,12 @@ posix_acl_alloc(int count, gfp_t flags) { const size_t size = sizeof(struct posix_acl) + count * sizeof(struct posix_acl_entry); - struct posix_acl *acl = kmalloc(size, flags); + struct posix_acl *acl; + + if (count < 0 || count > (SIZE_MAX - sizeof(struct posix_acl) / + sizeof(struct posix_acl_entry))) + return NULL; + acl = kmalloc(size, flags); if (acl) posix_acl_init(acl, count); return acl; -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html