On 13.03.19 г. 7:36 ч., Anand Jain wrote:
> We let to pass zstd compression parameter even if its not fully written.
> For example:
> btrfs prop set /btrfs compression zst
> btrfs prop get /btrfs compression
> compression=zst
>
> zlib and lzo are fine.
>
> Fix it by using the expected number of char in strncmp().
>
> Signed-off-by: Anand Jain <anand.j...@oracle.com>
Reviewed-by: Nikolay Borisov <nbori...@suse.com>
> ---
> fs/btrfs/props.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/props.c b/fs/btrfs/props.c
> index 8577ea1d4e2b..ef6502a94712 100644
> --- a/fs/btrfs/props.c
> +++ b/fs/btrfs/props.c
> @@ -306,7 +306,7 @@ static int prop_compression_apply(struct inode *inode,
> const char *value,
> btrfs_set_fs_incompat(fs_info, COMPRESS_LZO);
> } else if (!strncmp("zlib", value, 4)) {
> type = BTRFS_COMPRESS_ZLIB;
> - } else if (!strncmp("zstd", value, len)) {
> + } else if (!strncmp("zstd", value, 4)) {
> type = BTRFS_COMPRESS_ZSTD;
> btrfs_set_fs_incompat(fs_info, COMPRESS_ZSTD);
> } else {
>