diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2021-09-05 08:40:44 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2021-09-05 08:40:44 +0300 |
commit | 4d5be2bb19bd299a5bd3525c4e28f571929d70de (patch) | |
tree | 570778eb77e1a268f1d9f1c21b8d280827a82e0a | |
parent | f7692ba9af9d85ec8c31708ca82632109cf4a95b (diff) | |
download | gdbm-4d5be2bb19bd299a5bd3525c4e28f571929d70de.tar.gz gdbm-4d5be2bb19bd299a5bd3525c4e28f571929d70de.tar.bz2 |
Fix file header validation
* src/gdbmopen.c (validate_header_std)
(validate_header_numsync): Check if bucket_size is > 0.
-rw-r--r-- | src/gdbmopen.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gdbmopen.c b/src/gdbmopen.c index 27896d4..9b812c6 100644 --- a/src/gdbmopen.c +++ b/src/gdbmopen.c @@ -109,7 +109,7 @@ validate_header_std (gdbm_file_header const *hdr, struct stat const *st) if (hdr->dir_bits != dir_bits) return GDBM_BAD_HEADER; - if (!(hdr->bucket_size > sizeof (hash_bucket))) + if (!(hdr->bucket_size > 0 && hdr->bucket_size > sizeof (hash_bucket))) return GDBM_BAD_HEADER; if (hdr->bucket_elems != bucket_element_count (hdr->bucket_size)) @@ -155,7 +155,7 @@ validate_header_numsync (gdbm_file_header const *hdr, struct stat const *st) if (hdr->dir_bits != dir_bits) return GDBM_BAD_HEADER; - if (!(hdr->bucket_size > sizeof (hash_bucket))) + if (!(hdr->bucket_size > 0 && hdr->bucket_size > sizeof (hash_bucket))) return GDBM_BAD_HEADER; if (hdr->bucket_elems != bucket_element_count (hdr->bucket_size)) |