Package: gdbmtool
Version: 1.24-2
Severity: normal
File: /usr/bin/gdbm_dump

Dear Maintainer,
GDBM handles the empty (zero bytes long) key and empty values without
any problem, but import/export to flat files is broken. When the empty
key or empty values are present in the database, gdbm_dump produces
output that gdbm_load cannot handle. I suspect the problem is in the
corresponding library functions (and probably applies upstream), but I
only tried the utility programs.

Consider the following:

$ gdbmtool -nN empty_key.db <<< 'store "" "foo";'
$ gdbm_dump empty_key.db empty_key.ascii
$ gdbm_load empty_key.ascii out.db
gdbm_load: empty_key.ascii:10: Malformed data

Likewise:

$ gdbmtool -nN empty_value.db <<< 'store "bar" "";'
$ gdbm_dump empty_value.db empty_value.ascii
$ gdbm_load empty_value.ascii out.db
gdbm_load: empty_value.ascii:11: Unexpected end of file

In both cases, the expected outcome is for gdbm_load to insert
the data from the dump to out.db without error.
The same happens when using binary format with the empty key:

$ gdbm_dump -H binary empty_key.db empty_key.bin
$ gdbm_load empty_key.bin out.db
gdbm_load: cannot load from empty_key.bin: File read error: Success

But binary at least handles empty values correctly:

$ gdbm_dump -H binary empty_value.db empty_value.bin
$ gdbm_load empty_value.bin out.db
# no error


-- System Information:
Debian Release: 13.0
  APT prefers testing
  APT policy: (900, 'testing'), (700, 'unstable'), (500, 'testing-security')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.27-amd64 (SMP w/4 CPU threads; PREEMPT)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=pl_PL.UTF-8, LC_CTYPE=pl_PL.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages gdbmtool depends on:
ii  libc6            2.41-9
ii  libgdbm6t64      1.24-2
ii  libreadline8t64  8.2-6

gdbmtool recommends no packages.

Versions of packages gdbmtool suggests:
pn  gdbm-l10n  <none>

-- no debconf information

Reply via email to