diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-05-24 08:09:48 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-05-24 08:09:48 +0300 |
commit | 0665bcf0c9cdf756f9d5edc6a638c56602c42065 (patch) | |
tree | 590d81a45721edca6b3530e7681d8f0db32af94b /src/gdbm.h.in | |
parent | ce702a1ca5ed9240cd0a70583c4234c34ce81b73 (diff) | |
download | gdbm-0665bcf0c9cdf756f9d5edc6a638c56602c42065.tar.gz gdbm-0665bcf0c9cdf756f9d5edc6a638c56602c42065.tar.bz2 |
error checking: check for avail_block consistency before using it
* src/gdbmdefs.h (gdbm_avail_block_valid_p): New function.
* src/gdbm.h.in (GDBM_BAD_AVAIL): New error code.
* src/gdbmerrno.c: Support new error code.
* src/falloc.c (pop_avail_block): Validate the avail_block
* src/gdbmopen.c (validate_header): Validate the avail_block.
* src/gdbmtool.c (_gdbm_avail_list_size)
(_gdbm_print_avail_list): Validate the avail_block.
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 3d19de7..61d5707 100644 --- a/src/gdbm.h.in +++ b/src/gdbm.h.in @@ -221,9 +221,10 @@ extern int gdbm_copy_meta (GDBM_FILE dst, GDBM_FILE src); # define GDBM_DIR_OVERFLOW 31 # define GDBM_BAD_BUCKET 32 # define GDBM_BAD_HEADER 33 +# define GDBM_BAD_AVAIL 34 # define _GDBM_MIN_ERRNO 0 -# define _GDBM_MAX_ERRNO GDBM_BAD_HEADER +# define _GDBM_MAX_ERRNO GDBM_BAD_AVAIL /* This one was never used and will be removed in the future */ # define GDBM_UNKNOWN_UPDATE GDBM_UNKNOWN_ERROR |