diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2014-04-25 18:44:03 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.cz> | 2014-05-02 17:05:37 +0200 |
commit | 21a1ff8887d0f23d18ef0606b2bf2092e4634454 (patch) | |
tree | 14534eef2ab243053bb8166f56e0f3d3519739c3 /props.c | |
parent | 9317400a67ea9c66fe727b21ddf0e7d925dbdaf1 (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.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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); |