Skip to contentSkip to conversation

adjust suspicious memset in nfsacl_encode()

PATCH New Milton Miller 1 participant 1 message Feb 2, 2011

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 adjust suspicious memset in nfsacl_encode()

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.

---
While I was reviewing changes merged post rc2 I saw this suspicious memset.

fs/nfs_common/nfsacl.c +1 -1
index 84c27d6..bc6d81b 100644
@@ -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