summaryrefslogtreecommitdiff
path: root/c_src
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordu.net>2016-04-29 13:42:22 +0200
committerLinus Nordberg <linus@nordu.net>2016-04-29 15:03:00 +0200
commit11509ca23e06a18c36655fa841a1e6837bbc44c0 (patch)
tree6b9eb40a46e4610275e59d2e9263e0aebad77146 /c_src
parent42d50536651f28ee0b1eedce06d6f612d5a89a90 (diff)
Handle addvalue() errors separately from duplicate keys.
Diffstat (limited to 'c_src')
-rw-r--r--c_src/permdb.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/c_src/permdb.c b/c_src/permdb.c
index 68fa695..d3b7394 100644
--- a/c_src/permdb.c
+++ b/c_src/permdb.c
@@ -380,7 +380,13 @@ rebuild_index_file(permdb_object *state)
int result =
addvalue(state, datakey, keylen, NULL, 0, offset);
free(datakey);
- if (result != 1) {
+ if (result < 0) {
+ fprintf(stderr, "error updating index tree for "
+ "entry at %llu\n", offset);
+ free(cookie);
+ return -1;
+ }
+ if (result == 0) {
fprintf(stderr, "duplicate key at %llu", offset);
free(cookie);
return -1;