diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-24 11:35:24 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-24 11:35:24 +0300 |
commit | 371bb85fe378ffd0ed6ddc81985d450cef5835a3 (patch) | |
tree | 6ab2d142b7aa1f9b29ec50b891c8293774964209 /src/gdbm.h.in | |
parent | f82d0b213fd2cdce80dc891906fba8d589115664 (diff) | |
download | gdbm-371bb85fe378ffd0ed6ddc81985d450cef5835a3.tar.gz gdbm-371bb85fe378ffd0ed6ddc81985d450cef5835a3.tar.bz2 |
More error checking; improve gdbm_recover
* Makefile.am (set-dist-date): New rule
(dist-hook): Catch FIXMEs in NEWS.
* NEWS: Updated.
* src/findkey.c (gdbm_bucket_element_valid_p): New function.
(_gdbm_read_entry): Validate the retrieved bucket element.
* src/gdbm.h.in (gdbm_recovery): New member: duplicate_keys.
(GDBM_BAD_HASH_TABLE): New error code.
* src/gdbmdefs.h (TYPE_WIDTH,SIGNED_TYPE_MAXIMUM)
(OFF_T_MAX): New defines.
(off_t_sum_ok): New function.
(gdbm_bucket_element_valid_p): New prototype.
* src/gdbmerrno.c: Support for GDBM_BAD_HASH_TABLE code.
* src/gdbmtool.c (recover_handler): Fix argument counting.
New argument 'summary' prints statistics summary at the end
of the run.
(export_handler,import_handler): Fix argument counting.
* src/mmap.c (SUM_FILE_SIZE): Rewrite as inlined function.
Add error checking.
(_gdbm_mapped_remap): More error checking.
* src/recover.c (run_recovery): Don't bail out on GDBM_CANNOT_REPLACE.
(gdbm_recover): Initialize duplicate_keys
* src/systems.h: Include limits.h
Diffstat (limited to 'src/gdbm.h.in')
-rw-r--r-- | src/gdbm.h.in | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/gdbm.h.in b/src/gdbm.h.in index 61d5707..e576c69 100644 --- a/src/gdbm.h.in +++ b/src/gdbm.h.in | |||
@@ -152,6 +152,7 @@ typedef struct gdbm_recovery_s | |||
152 | size_t recovered_buckets; | 152 | size_t recovered_buckets; |
153 | size_t failed_keys; | 153 | size_t failed_keys; |
154 | size_t failed_buckets; | 154 | size_t failed_buckets; |
155 | size_t duplicate_keys; | ||
155 | char *backup_name; | 156 | char *backup_name; |
156 | } gdbm_recovery; | 157 | } gdbm_recovery; |
157 | 158 | ||
@@ -222,9 +223,10 @@ extern int gdbm_copy_meta (GDBM_FILE dst, GDBM_FILE src); | |||
222 | # define GDBM_BAD_BUCKET 32 | 223 | # define GDBM_BAD_BUCKET 32 |
223 | # define GDBM_BAD_HEADER 33 | 224 | # define GDBM_BAD_HEADER 33 |
224 | # define GDBM_BAD_AVAIL 34 | 225 | # define GDBM_BAD_AVAIL 34 |
226 | # define GDBM_BAD_HASH_TABLE 35 | ||
225 | 227 | ||
226 | # define _GDBM_MIN_ERRNO 0 | 228 | # define _GDBM_MIN_ERRNO 0 |
227 | # define _GDBM_MAX_ERRNO GDBM_BAD_AVAIL | 229 | # define _GDBM_MAX_ERRNO GDBM_BAD_HASH_TABLE |
228 | 230 | ||
229 | /* This one was never used and will be removed in the future */ | 231 | /* This one was never used and will be removed in the future */ |
230 | # define GDBM_UNKNOWN_UPDATE GDBM_UNKNOWN_ERROR | 232 | # define GDBM_UNKNOWN_UPDATE GDBM_UNKNOWN_ERROR |