Bug 1476324 - md-cache: xattr values should not be checked with string functions
Summary: md-cache: xattr values should not be checked with string functions
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: md-cache
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Guenther Deschner
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1499892 1499893
TreeView+ depends on / blocked
 
Reported: 2017-07-28 15:56 UTC by Guenther Deschner
Modified: 2017-12-08 17:35 UTC (History)
2 users (show)

Fixed In Version: glusterfs-3.13.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 1499892 1499893 (view as bug list)
Environment:
Last Closed: 2017-12-07 05:50:51 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Guenther Deschner 2017-07-28 15:56:47 UTC
Description of problem:

xattr caching does not work for values with a leading 0 (due to an internal strcmp() for ""), given that often binary values are stored in xattrs (for e.g. samba specific xattrs), this is currently a serious limitation.

Version-Release number of selected component (if applicable):


How reproducible:

Everytime

Steps to Reproduce:

gluster volume set VOLUME performance.cache-samba-metadata on
mount VOLUME via fuse to /mnt
touch /mnt/test
setfattr -n user.DOSATTRIB -v 0x00ff /mnt/test
echo $?
0
getfattr -n user.DOSATTRIB -d /mnt/test
/mnt/test: user.DOSATTRIB: No such attribute

Comment 1 Worker Ant 2017-07-28 15:59:05 UTC
REVIEW: https://review.gluster.org/17910 (md-cache: avoid checking the xattr value buffer with string functions.) posted (#1) for review on master by Günther Deschner (gd)

Comment 2 Worker Ant 2017-07-31 23:23:35 UTC
REVIEW: https://review.gluster.org/17910 (md-cache: avoid checking the xattr value buffer with string functions.) posted (#2) for review on master by Michael Adam (obnox)

Comment 3 Worker Ant 2017-07-31 23:31:26 UTC
REVIEW: https://review.gluster.org/17910 (md-cache: avoid checking the xattr value buffer with string functions.) posted (#3) for review on master by Michael Adam (obnox)

Comment 4 Worker Ant 2017-08-01 13:14:07 UTC
COMMIT: https://review.gluster.org/17910 committed in master by Jeff Darcy (jeff.us) 
------
commit ab4ffdac9dec1867f2d9b33242179cf2b347319d
Author: Günther Deschner <gd>
Date:   Fri Jul 28 13:38:16 2017 +0200

    md-cache: avoid checking the xattr value buffer with string functions.
    
    xattrs may very well contain binary, non-text data with leading 0
    values. Using strcmp for checking empty values is not the appropriate
    thing to do: In the best case, it might treat a binary xattr value
    starting with 0 from being cached (and hence also from being reported
    back with xattr). In the worst case, we might read beyond the end
    of a data blob that does contain any zero byte.
    
    We fix this by checking the length of the data blob and checking
    the first byte against 0 if the length is one.
    
    Signed-off-by: Guenther Deschner <gd>
    Pair-Programmed-With: Michael Adam <obnox>
    Change-Id: If723c465a630b8a37b6be58782a2724df7ac6b11
    BUG: 1476324
    Reviewed-on: https://review.gluster.org/17910
    Reviewed-by: Michael Adam <obnox>
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Poornima G <pgurusid>
    Tested-by: Poornima G <pgurusid>
    CentOS-regression: Gluster Build System <jenkins.org>

Comment 5 Shyamsundar 2017-12-08 17:35:59 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.13.0, please open a new bug report.

glusterfs-3.13.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/announce/2017-December/000087.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.