[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gdbm-1.15 released [stable]

From: Sergey Poznyakoff
Subject: gdbm-1.15 released [stable]
Date: Sat, 16 Jun 2018 20:02:07 +0300


Please be informed that GDBM version 1.15 is available for download.
Important changes introduced in this release make it possible to handle
inconsistent or malformed database files which would have caused coredumps
in previous versions of the library. See below for a detailed list of 

Special thanks to Lionel Debroux and Craig Young for investing
their time and efforts in testing and providing valuable feedback.

GDBM is a library for manipulating a database of key/value
pairs. It provides primitives for storing key/data pairs, searching
and retrieving data by key and deleting a key along with its data. It
also supports sequential iteration over all key/data pairs in a
database. The package also contains utilities for inspecting databases,
exporting them into plaintext files and for loading such files back into
a database.

Here are the compressed sources and a GPG detached signature[*]:

Use a mirror for higher download bandwidth:

Here are the MD5 and SHA1 checksums:

8d990067ae46c75d16e8a9c79b0c4fd7  gdbm-1.15.tar.gz
d3914a6c6230a6f1b21e67f60990233336743eb6  gdbm-1.15.tar.gz

[*] Use a .sig file to verify that the corresponding file (without the
.sig suffix) is intact.  First, be sure to download both the .sig file
and the corresponding tarball.  Then, run a command like this:

  gpg --verify gdbm-1.15.tar.gz.sig

If that command fails because you don't have the required public key,
then run this command to import it:

  gpg --keyserver --recv-keys 3602B07F55D0C732

and rerun the 'gpg --verify' command.

This release was bootstrapped with the following tools:
  Autoconf 2.69
  Automake 1.15
  Makeinfo 5.9.93
  Bison 2.7
  Flex 2.5.37

The list of important changes follows:

* Extensive database consistency checking

GDBM tries to detect inconsistencies in input database files as
early as possible. When an inconcistency is detected, a helpful
diagnostics is returned and the database is marked as needing
recovery. From this moment on, any GDBM function trying to access
the database will immediately return error code. In order to
reconstruct the database and return it to healthy state, the
gdbm_recover function should be used.

* Improved error checking

* Removed gdbm-1.8.3 compatibility layer

* Commands can be given to gdbmtool in the command line

The syntax is:

  gdbmtool DBNAME COMMAND [ARGS...]

Multiple commands are separated by semicolon (take care to escape it),

  gdbmtool t.db count\; avail

* Fixed data conversion bugs in storing structured keys or content

* New member in the gdbm_recovery structure: duplicate_keys.

Upon return from gdbm_recover, this member holds the number of keys
that has not been recovered, because the same key had already been stored
in the database. The actual number of stored keys is thus
recovered_keys - duplicate_keys.

* New error codes.

  GDBM_BAD_BUCKET      "Malformed bucket header"
  GDBM_BAD_HEADER      "Malformed database file header"
  GDBM_BAD_AVAIL       "Malformed avail_block"
  GDBM_BAD_HASH_TABLE  "Malformed hash table"
  GDBM_BAD_DIR_ENTRY   "Invalid directory entry"

Best regards,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]