diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-25 14:17:11 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-25 15:00:01 +0300 |
commit | 655cd193549e20ea8a8e77125adec7c5909c067e (patch) | |
tree | d59f997331bfcec8c0c17afb7bc8438215f09102 /src/gdbm.h.in | |
parent | 8d2f483b28f8418703982658b3e7dda7a96ad335 (diff) | |
download | gdbm-655cd193549e20ea8a8e77125adec7c5909c067e.tar.gz gdbm-655cd193549e20ea8a8e77125adec7c5909c067e.tar.bz2 |
More database consistency checks
* NEWS: Update.
* THANKS: Update.
* src/bucket.c (_gdbm_get_bucket): Check if directory entry is
valid. Don't cache invalid buckets.
* src/gdbm.h.in (GDBM_BAD_DIR_ENTRY): New error code.
* src/gdbmerrno.c: Likewise.
* src/gdbmopen.c (validate_header): Compute expected
number of bucket elements based on the bucket size, not on
the block size.
(_gdbm_init_cache_entry): New function.
* src/proto.h (_gdbm_init_cache_entry): New proto.
* src/recover.c (gdbm_recover): Clear error state after return
from check_db indicating failure.
Diffstat (limited to 'src/gdbm.h.in')
-rw-r--r-- | src/gdbm.h.in | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gdbm.h.in b/src/gdbm.h.in index e576c69..e6bdc58 100644 --- a/src/gdbm.h.in +++ b/src/gdbm.h.in @@ -224,9 +224,10 @@ extern int gdbm_copy_meta (GDBM_FILE dst, GDBM_FILE src); # define GDBM_BAD_HEADER 33 # define GDBM_BAD_AVAIL 34 # define GDBM_BAD_HASH_TABLE 35 +# define GDBM_BAD_DIR_ENTRY 36 # define _GDBM_MIN_ERRNO 0 -# define _GDBM_MAX_ERRNO GDBM_BAD_HASH_TABLE +# define _GDBM_MAX_ERRNO GDBM_BAD_DIR_ENTRY /* This one was never used and will be removed in the future */ # define GDBM_UNKNOWN_UPDATE GDBM_UNKNOWN_ERROR |