diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2021-07-30 07:37:23 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2021-07-30 07:37:23 +0300 |
commit | dc8ac4c2f072631ae6cd667716d189e5785d1b36 (patch) | |
tree | 85ac0aaecd2b4792a1335718cf3bf072a6c34d4b | |
parent | a9984547d57a687da75f9a182ce2d9b3c5a4cad6 (diff) | |
download | gdbm-dc8ac4c2f072631ae6cd667716d189e5785d1b36.tar.gz |
Minor change
* src/gdbmdefs.h (GDBM_HEADER_AVAIL_SIZE): Removed.
(GDBM_HEADER_AVAIL_OFFSET): New macro.
* src/avail.c: Use dbf->avail_size and GDBM_HEADER_AVAIL_OFFSET.
* src/gdbmopen.c: Likewise.
-rw-r--r-- | src/avail.c | 6 | ||||
-rw-r--r-- | src/gdbmdefs.h | 4 | ||||
-rw-r--r-- | src/gdbmopen.c | 8 |
3 files changed, 8 insertions, 10 deletions
diff --git a/src/avail.c b/src/avail.c index db7061c..c361d5a 100644 --- a/src/avail.c +++ b/src/avail.c @@ -214,12 +214,10 @@ gdbm_avail_traverse (GDBM_FILE dbf, int rc = 0; GDBM_ASSERT_CONSISTENCY (dbf, -1); - if (gdbm_avail_block_validate (dbf, dbf->avail, - GDBM_HEADER_AVAIL_SIZE (dbf))) + if (gdbm_avail_block_validate (dbf, dbf->avail, dbf->avail_size)) return -1; - // FIXME - if (off_map_lookup (&map, (char*)dbf->avail - (char*)dbf->header)) + if (off_map_lookup (&map, GDBM_HEADER_AVAIL_OFFSET (dbf))) { GDBM_SET_ERRNO (dbf, GDBM_MALLOC_ERROR, FALSE); return -1; diff --git a/src/gdbmdefs.h b/src/gdbmdefs.h index ca88902..e1dcc66 100644 --- a/src/gdbmdefs.h +++ b/src/gdbmdefs.h @@ -326,7 +326,9 @@ struct gdbm_file_info #define GDBM_DIR_COUNT(db) ((db)->header->dir_size / sizeof (off_t)) -#define GDBM_HEADER_AVAIL_SIZE(db) ((db)->avail_size) +/* Offset of the avail block in GDBM header. */ +#define GDBM_HEADER_AVAIL_OFFSET(db) \ + ((char*)(db)->avail - (char*)(db)->header) /* Execute CODE without clobbering errno */ #define SAVE_ERRNO(code) \ diff --git a/src/gdbmopen.c b/src/gdbmopen.c index 360d113..4c3b5e2 100644 --- a/src/gdbmopen.c +++ b/src/gdbmopen.c @@ -211,8 +211,7 @@ _gdbm_validate_header (GDBM_FILE dbf) rc = validate_header (dbf->header, &file_stat); if (rc == 0) { - if (gdbm_avail_block_validate (dbf, dbf->avail, - GDBM_HEADER_AVAIL_SIZE (dbf))) + if (gdbm_avail_block_validate (dbf, dbf->avail, dbf->avail_size)) rc = GDBM_BAD_AVAIL; } return rc; @@ -590,7 +589,7 @@ gdbm_fd_open (int fd, const char *file_name, int block_size, gdbm_header_avail (dbf->header, &dbf->avail, &dbf->avail_size, &dbf->xheader); if (((dbf->header->block_size - - (((char*)dbf->avail - (char*)dbf->header) + + (GDBM_HEADER_AVAIL_OFFSET (dbf) + sizeof (avail_block))) / sizeof (avail_elem) + 1) != dbf->avail->size) { if (!(flags & GDBM_CLOERROR)) @@ -599,8 +598,7 @@ gdbm_fd_open (int fd, const char *file_name, int block_size, return NULL; } - if (gdbm_avail_block_validate (dbf, dbf->avail, - GDBM_HEADER_AVAIL_SIZE (dbf))) + if (gdbm_avail_block_validate (dbf, dbf->avail, dbf->avail_size)) { if (!(flags & GDBM_CLOERROR)) dbf->desc = -1; |