From ebe92f95401bf88273e1f1460cbf977939a7ce29 Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Mon, 8 Mar 2021 18:19:49 +0100 Subject: [PATCH] Fix window size initialization and div-by-zero --- src/dwarfs/block_manager.cpp | 2 +- src/mkdwarfs.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dwarfs/block_manager.cpp b/src/dwarfs/block_manager.cpp index f6fbce6c..5d7a84e2 100644 --- a/src/dwarfs/block_manager.cpp +++ b/src/dwarfs/block_manager.cpp @@ -279,7 +279,7 @@ class block_manager_ final : public block_manager::impl { , window_size_{cfg.blockhash_window_size > 0 ? static_cast(1) << cfg.blockhash_window_size : 0} - , window_step_{window_size_ >> cfg.window_increment_shift} + , window_step_{std::max(1, window_size_ >> cfg.window_increment_shift)} , block_size_{static_cast(1) << cfg.block_size_bits} , filter_{bloom_filter_size()} { LOG_INFO << "bloom filter size: " << size_with_unit(filter_.size() / 8); diff --git a/src/mkdwarfs.cpp b/src/mkdwarfs.cpp index a255ef90..b2536935 100644 --- a/src/mkdwarfs.cpp +++ b/src/mkdwarfs.cpp @@ -549,7 +549,7 @@ int mkdwarfs(int argc, char** argv) { metadata_compression = defaults.metadata_compression; } - if (!vm.count("blockhash-window-size")) { + if (!vm.count("window-size")) { cfg.blockhash_window_size = defaults.window_size; }