From f08dea5fead2f9ef9e0fa114b2e09aa94908d629 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 28 Jun 2026 17:30:15 +0200 Subject: fixed block-wise backwards searches The calculation of the block start was faulty and could cause underflows resulting in unpredictable behavior. --- src/search.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/search.c') diff --git a/src/search.c b/src/search.c index ffa3a99..0df483f 100644 --- a/src/search.c +++ b/src/search.c @@ -783,8 +783,8 @@ teco_do_search_backwards(regex_t *re, gsize from, gsize to, gint *count, GError gsize to_block = to-from; while (to_block > 0) { - gsize from_block = teco_search_block_size > 0 - ? MAX(0, to_block - teco_search_block_size) : 0; + gsize from_block = teco_search_block_size > 0 && to_block >= teco_search_block_size + ? to_block - teco_search_block_size : 0; /* how many bytes have been consumed in the current block */ gsize offset = 0; -- cgit v1.2.3