summaryrefslogtreecommitdiff
path: root/props.c
diff options
context:
space:
mode:
authorLiu Bo <bo.li.liu@oracle.com>2014-04-25 18:44:03 +0800
committerDavid Sterba <dsterba@suse.cz>2014-05-02 17:05:37 +0200
commit21a1ff8887d0f23d18ef0606b2bf2092e4634454 (patch)
tree14534eef2ab243053bb8166f56e0f3d3519739c3 /props.c
parent9317400a67ea9c66fe727b21ddf0e7d925dbdaf1 (diff)
Btrfs-progs: set string end sing '\0' for property
Set string "xattr_name" 's end with '\0' so that it won't be violated in memory. With this fix, xfstest/btrfs/048 can pass on my box. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Reviewed-by: Filipe Manana <fdmanana@gmail.com> Signed-off-by: David Sterba <dsterba@suse.cz>
Diffstat (limited to 'props.c')
-rw-r--r--props.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/props.c b/props.c
index 04b9e5f1..9fd612f9 100644
--- a/props.c
+++ b/props.c
@@ -129,13 +129,14 @@ static int prop_compression(enum prop_object_type type,
goto out;
}
- xattr_name = malloc(XATTR_BTRFS_PREFIX_LEN + strlen(name));
+ xattr_name = malloc(XATTR_BTRFS_PREFIX_LEN + strlen(name) + 1);
if (!xattr_name) {
ret = -ENOMEM;
goto out;
}
memcpy(xattr_name, XATTR_BTRFS_PREFIX, XATTR_BTRFS_PREFIX_LEN);
memcpy(xattr_name + XATTR_BTRFS_PREFIX_LEN, name, strlen(name));
+ xattr_name[XATTR_BTRFS_PREFIX_LEN + strlen(name)] = '\0';
if (value)
sret = fsetxattr(fd, xattr_name, value, strlen(value), 0);