diff options
| author | Thorsten Töpper <atsutane@freethoughts.de> | 2026-02-19 22:24:31 +0100 |
|---|---|---|
| committer | Thorsten Töpper <atsutane@freethoughts.de> | 2026-02-19 22:24:31 +0100 |
| commit | 71cb0871464a1cc7de0cdabd252072fbb23102c4 (patch) | |
| tree | 49f580cce7c8c64118217e98bc8a4231bce7598f /src | |
| parent | 6dbce994b660c3bcf587b0b8b45680b1e6b7ba69 (diff) | |
| download | duplicate_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.c | 12 |
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); |
