From 8952f7fd7cebffbe4ecf8c232e4435c5de72678a Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Thu, 16 Sep 2021 08:45:29 +0300 Subject: Fix computation of dbf->avail->count after pushing new avail block. This is a very long-standing bug that caused a loss of an avail entry if the original avail table had odd number of entries. * src/falloc.c (push_avail_block): Fix computation of dbf->avail->count. --- src/falloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/falloc.c b/src/falloc.c index 979d77a..890ed7b 100644 --- a/src/falloc.c +++ b/src/falloc.c @@ -314,8 +314,8 @@ push_avail_block (GDBM_FILE dbf) else dbf->avail->av_table[index>>1] = dbf->avail->av_table[index]; - /* Update the header avail count to previous size divided by 2. */ - dbf->avail->count >>= 1; + /* Update the header avail count. */ + dbf->avail->count -= temp->count; rc = 0; do -- cgit v1.2.1