diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2018-10-18 17:23:07 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2018-10-18 17:23:07 +0300 |
commit | 852ff1b6e81ce13fdcd1fd4fb272b17d760760b3 (patch) | |
tree | 3113d09e84353d47dfd48b237c8b5e2c62eed869 /src/gdbmtool.c | |
parent | 2ff4ae9c745d4b9e6ee36468c81554027f66c35b (diff) | |
download | gdbm-852ff1b6e81ce13fdcd1fd4fb272b17d760760b3.tar.gz gdbm-852ff1b6e81ce13fdcd1fd4fb272b17d760760b3.tar.bz2 |
Attempt recovery in case of invalid next_block header field
* src/gdbmopen.c (validate_header): Return GDBM_NEED_RECOVERY
if next_block is invalid.
(_gdbm_validate_header): New function.
(gdbm_fd_open): Set need_recovery depending on return from validate_header.
(gdbm_open): Bail out on invalid value of GDBM_OPENMASK bits.
* src/proto.h (_gdbm_validate_header): New proto.
* src/recover.c (check_db): Re-validate the header.
* src/gdbmtool.c (export_handler): Fix option processing.
Diffstat (limited to 'src/gdbmtool.c')
-rw-r--r-- | src/gdbmtool.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gdbmtool.c b/src/gdbmtool.c index 8c97e1e..bbadbae 100644 --- a/src/gdbmtool.c +++ b/src/gdbmtool.c @@ -969,7 +969,7 @@ export_handler (struct handler_param *param) int i; int filemode; - for (i = 0; i < param->argc; i++) + for (i = 1; i < param->argc; i++) { if (strcmp (PARAM_STRING (param, i), "truncate") == 0) flags = GDBM_NEWDB; |