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