diff options
author | Timofey Titovets <nefelim4ag@gmail.com> | 2017-05-30 02:18:04 +0300 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-06-19 18:26:01 +0200 |
commit | 1e9d7291e50178699b87656488912eba235c7679 (patch) | |
tree | 5dd825dae958357d95f42b3ea839dd820c5a23b1 /fs/btrfs | |
parent | 054ec2f626ed5bc1633addfabb1d8de1b56f949d (diff) | |
download | linux-stable-1e9d7291e50178699b87656488912eba235c7679.tar.gz linux-stable-1e9d7291e50178699b87656488912eba235c7679.tar.bz2 linux-stable-1e9d7291e50178699b87656488912eba235c7679.zip |
Btrfs: lzo: compressed data size must be less then input size
Logic already skips if compression makes data bigger, let's sync lzo
with zlib and also return error if compressed size is equal to
input size.
Signed-off-by: Timofey Titovets <nefelim4ag@gmail.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ update changelog ]
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/lzo.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/btrfs/lzo.c b/fs/btrfs/lzo.c index a554856a5f8a..7e8b0d6a7961 100644 --- a/fs/btrfs/lzo.c +++ b/fs/btrfs/lzo.c @@ -230,8 +230,10 @@ static int lzo_compress_pages(struct list_head *ws, in_len = min(bytes_left, PAGE_SIZE); } - if (tot_out > tot_in) + if (tot_out >= tot_in) { + ret = -E2BIG; goto out; + } /* store the size of all chunks of compressed data */ cpage_out = kmap(pages[0]); |