summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org>2021-07-30 07:37:23 +0300
committerSergey Poznyakoff <gray@gnu.org>2021-07-30 07:37:23 +0300
commitdc8ac4c2f072631ae6cd667716d189e5785d1b36 (patch)
tree85ac0aaecd2b4792a1335718cf3bf072a6c34d4b
parenta9984547d57a687da75f9a182ce2d9b3c5a4cad6 (diff)
downloadgdbm-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.c6
-rw-r--r--src/gdbmdefs.h4
-rw-r--r--src/gdbmopen.c8
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;