From 5c80f5aa409b211ab193c56fb6b77d73b61966e5 Mon Sep 17 00:00:00 2001 From: Phillip Lougher Date: Sun, 23 May 2010 08:27:42 +0100 Subject: squashfs: fix name reading in squashfs_xattr_get Only read potentially matching names into the target buffer, all obviously non matching names don't need to be read into the target buffer. Signed-off-by: Phillip Lougher --- fs/squashfs/xattr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c index 14a2feef09b..c7655e8b31c 100644 --- a/fs/squashfs/xattr.c +++ b/fs/squashfs/xattr.c @@ -145,8 +145,12 @@ static int squashfs_xattr_get(struct inode *inode, int name_index, type = le16_to_cpu(entry.type); prefix = type & SQUASHFS_XATTR_PREFIX_MASK; - err = squashfs_read_metadata(sb, target, &start, &offset, - name_size); + if (prefix == name_index && name_size == name_len) + err = squashfs_read_metadata(sb, target, &start, + &offset, name_size); + else + err = squashfs_read_metadata(sb, NULL, &start, + &offset, name_size); if (err < 0) goto failed; -- cgit v1.2.3-18-g5258