aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThorsten Töpper <atsutane@freethoughts.de>2026-02-19 22:24:31 +0100
committerThorsten Töpper <atsutane@freethoughts.de>2026-02-19 22:24:31 +0100
commit71cb0871464a1cc7de0cdabd252072fbb23102c4 (patch)
tree49f580cce7c8c64118217e98bc8a4231bce7598f /src
parent6dbce994b660c3bcf587b0b8b45680b1e6b7ba69 (diff)
downloadduplicate_finder-71cb0871464a1cc7de0cdabd252072fbb23102c4.tar.gz
duplicate_finder-71cb0871464a1cc7de0cdabd252072fbb23102c4.tar.bz2
kv_manager: fix keysize related errors
Diffstat (limited to 'src')
-rw-r--r--src/kv_manager.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/kv_manager.c b/src/kv_manager.c
index df95faf..8d2e79f 100644
--- a/src/kv_manager.c
+++ b/src/kv_manager.c
@@ -106,7 +106,7 @@ bool kv_close_storage() {
bool add_b_t_wrapped(char *key, bool state, char type, bool keep_original_type) {
datum k, v;
int fcall_rc;
- char s[2] = { 0, 0 };
+ char s[3] = { 0, 0, 0 };
if (key == NULL || key[0] == '\0') {
LOGERR("ERROR: No key given.\n");
@@ -126,7 +126,7 @@ bool add_b_t_wrapped(char *key, bool state, char type, bool keep_original_type)
if (v.dptr == NULL) {
v.dptr = s;
- v.dsize = 2;
+ v.dsize = 3;
}
v.dptr[0] = (state) ? 'T' : 'F';
@@ -231,11 +231,11 @@ char *kv_get_raw(char *key) {
}
k.dptr = key;
- k.dsize = (int)strlen(key);
+ k.dsize = (int)strlen(key)+1;
v = gdbm_fetch(gdbf, k);
- if (gdbm_errno != GDBM_ITEM_NOT_FOUND) {
+ if (v.dptr == NULL && gdbm_errno != GDBM_ITEM_NOT_FOUND) {
LOGERR("ERROR: Failed to fetch value for key '%s': %s\n",
key, gdbm_strerror(gdbm_errno));
}
@@ -259,7 +259,7 @@ bool kv_entry_exists(char *key) {
}
k.dptr = key;
- k.dsize = (int)strlen(key);
+ k.dsize = (int)strlen(key)+1;
if (gdbm_exists(gdbf, k) == 1) {
return true;
@@ -300,7 +300,7 @@ char *kv_next_key(char *key) {
}
k.dptr = key;
- k.dsize = (int)strlen(key);
+ k.dsize = (int)strlen(key)+1;
nk = gdbm_nextkey(gdbf, k);