[PATCH] adjust suspicious memset in nfsacl_encode()

From: Milton Miller
Date: Wed Feb 02 2011 - 01:14:51 EST



commit f61f6da0d53842e849bab7f69e1431bd3de1136d "NFS: Prevent memory
allocation failure in nfsacl_encode()" added a memset whose length was
the size of the pointer. Change this to the size of the pointed struct
that is later passed to posix_acl_init(). The 4 entries that are the
remainder of the parent struct will be set and therefore should not
need zeroing.

Alternatively we could remove the memset as posix_acl_init sets all
fields with storage in struct posix_acl and we won't reference any
implicit padding.

Signed-off-by: Milton Miller <miltonm@xxxxxxx>
---
While I was reviewing changes merged post rc2 I saw this suspicious memset.

diff --git a/fs/nfs_common/nfsacl.c b/fs/nfs_common/nfsacl.c
index 84c27d6..bc6d81b 100644
--- a/fs/nfs_common/nfsacl.c
+++ b/fs/nfs_common/nfsacl.c
@@ -117,7 +117,7 @@ int nfsacl_encode(struct xdr_buf *buf, unsigned int base, struct inode *inode,
* invoked in contexts where a memory allocation failure is
* fatal. Fortunately this fake ACL is small enough to
* construct on the stack. */
- memset(acl2, 0, sizeof(acl2));
+ memset(acl2, 0, sizeof(*acl2));
posix_acl_init(acl2, 4);

/* Insert entries in canonical order: other orders seem
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/