From cbc1374f60bb925489a41ed67598cac6588a01cd Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Thu, 16 Sep 2021 09:33:36 +0200 Subject: core/gdbm: integrated upstream fix for test 31 (FS32#204) --- .../8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch | 31 ++++++++++++++++++++++ core/gdbm/PKGBUILD | 15 +++++++++++ 2 files changed, 46 insertions(+) create mode 100644 core/gdbm/8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch create mode 100644 core/gdbm/PKGBUILD (limited to 'core/gdbm') diff --git a/core/gdbm/8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch b/core/gdbm/8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch new file mode 100644 index 00000000..c98f721e --- /dev/null +++ b/core/gdbm/8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch @@ -0,0 +1,31 @@ +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 + diff --git a/core/gdbm/PKGBUILD b/core/gdbm/PKGBUILD new file mode 100644 index 00000000..a8c7ed45 --- /dev/null +++ b/core/gdbm/PKGBUILD @@ -0,0 +1,15 @@ +# see also FS32#204 +source+=('8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch') +sha512sums+=('bf9e554bdd66565ed7635184671cfdac3ab505c09dbf4df6d944dbb1b39b6e39c57ed49dc67984cffe025de6a5d7e941e4d2934a1f4071b192a28cd114835b90') +b2sums+=('725a0f6f61cd8dcbe77b73d44980bc966259ebdd9504ea50f4237273cfdda71904db89fbecb2ead67af86af1c8739b037c8d83dd37d19f81abeeb024d2781c38') +eval "$( + { + declare -f prepare || \ + printf 'prepare() {\n}\n' + } \ + | sed ' + /autoreconf/ a \ + patch -Np1 -i ../8952f7fd7cebffbe4ecf8c232e4435c5de72678a.patch + ' +)" + -- cgit v1.2.3-70-g09d2