diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-08-07 10:40:26 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-08-07 10:41:49 +0200 |
commit | 89d5c4a4c00ba11e5087f86ae35b76895a06220b (patch) | |
tree | 3cbc96e168def5584615af2bcf841d52bcf32bc7 /lib | |
parent | d2939161c783c8394ac995d44995fb028731ac28 (diff) |
Fix zero padding of extracted data blocks
Only padd it if the *extracted* size is less then block size. Doing it
with the compressed size results in garbled blocks. Especially because
most of them are less than block size when compressed.
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sqfs/data_reader.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/sqfs/data_reader.c b/lib/sqfs/data_reader.c index 2b111db..18719fe 100644 --- a/lib/sqfs/data_reader.c +++ b/lib/sqfs/data_reader.c @@ -75,8 +75,8 @@ static int precache_data_block(data_reader_t *data, off_t location, if (ret < 0) return -1; - if (size < data->block_size) - memset((char *)data->block + size, 0, data->block_size - size); + if ((size_t)ret < data->block_size) + memset((char *)data->block + ret, 0, data->block_size - ret); data->current_block = location; return 0; |