Messages in this thread Patch in this message | | | Date | Mon, 3 Sep 2012 20:35:15 +0200 | From | Andi Kleen <> | Subject | [PATCH] Fix memset in NFS zap caches |
| |
Fix memset in nfs_zap_caches_locked
This memset overruns the buffer by 4 bytes on 64bit systems.
gcc 4.8 correct complains:
/backup/lsrc/git/linux-lto-2.6/fs/nfs/inode.c: In function 'nfs_zap_caches_locked': /backup/lsrc/git/linux-lto-2.6/fs/nfs/inode.c:157:41: warning: argument to 'sizeof' in 'memset' call is the same pointer type '__be32 *' as the destination; expected '__be32' or an explicit length [-Wsizeof-pointer-memaccess] memset(NFS_COOKIEVERF(inode), 0, sizeof(NFS_COOKIEVERF(inode))); ^ Add a * to sizeof the correct type.
Signed-off-by: Andi Kleen <ak@linux.intel.com>
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index c6e895f..69e7f0f 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c @@ -154,7 +154,7 @@ static void nfs_zap_caches_locked(struct inode *inode) nfsi->attrtimeo = NFS_MINATTRTIMEO(inode); nfsi->attrtimeo_timestamp = jiffies; - memset(NFS_COOKIEVERF(inode), 0, sizeof(NFS_COOKIEVERF(inode))); + memset(NFS_COOKIEVERF(inode), 0, sizeof(*NFS_COOKIEVERF(inode))); if (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode)) nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL|NFS_INO_REVAL_PAGECACHE; else -- ak@linux.intel.com -- Speaking for myself only.
| |