diff options
Diffstat (limited to 'src/bucket.c')
-rw-r--r-- | src/bucket.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bucket.c b/src/bucket.c index e17019c..a3e8f4e 100644 --- a/src/bucket.c +++ b/src/bucket.c @@ -140,13 +140,16 @@ _gdbm_get_bucket (GDBM_FILE dbf, int dir_index) dbf->need_recovery = TRUE; _gdbm_fatal (dbf, gdbm_db_strerror (dbf)); return -1; } /* Validate the bucket */ bucket = dbf->bucket_cache[lru].ca_bucket; - if (!(bucket->count >= 0 && bucket->count <= dbf->header->bucket_elems)) + if (!(bucket->count >= 0 + && bucket->count <= dbf->header->bucket_elems + && bucket->bucket_bits >= 0 + && bucket->bucket_bits <= GDBM_HASH_BITS)) { GDBM_SET_ERRNO (dbf, GDBM_BAD_BUCKET, TRUE); return -1; } /* Validate bucket_avail table */ if (gdbm_bucket_avail_table_validate (dbf, bucket)) |