summaryrefslogtreecommitdiff
path: root/Src/Modules/db_gdbm.c
diff options
context:
space:
mode:
authorSebastian Gniazdowski <psprint@zdharma.org>2017-05-28 13:15:06 -0700
committerBarton E. Schaefer <schaefer@zsh.org>2017-05-28 13:15:06 -0700
commitca0607c4c219ea1c75673dd2a89831997d07754e (patch)
tree156f893cb6505aa4102c6b9592633dd354af7afe /Src/Modules/db_gdbm.c
parent11304f731899275826b4efd52349cfe33684502a (diff)
downloadzsh-ca0607c4c219ea1c75673dd2a89831997d07754e.tar.gz
zsh-ca0607c4c219ea1c75673dd2a89831997d07754e.zip
41153: finish module setup only after all error conditions have been checked
Diffstat (limited to 'Src/Modules/db_gdbm.c')
-rw-r--r--Src/Modules/db_gdbm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/Src/Modules/db_gdbm.c b/Src/Modules/db_gdbm.c
index 35254b68c..c4bb931a3 100644
--- a/Src/Modules/db_gdbm.c
+++ b/Src/Modules/db_gdbm.c
@@ -157,10 +157,7 @@ bin_ztie(char *nam, char **args, Options ops, UNUSED(int func))
gdbm_errno=0;
dbf = gdbm_open(resource_name, 0, read_write, 0666, 0);
- if(dbf) {
- addmodulefd(gdbm_fdesc(dbf), FDT_MODULE);
- append_tied_name(pmname);
- } else {
+ if(dbf == NULL) {
zwarnnam(nam, "error opening database file %s (%s)", resource_name, gdbm_strerror(gdbm_errno));
return 1;
}
@@ -172,6 +169,9 @@ bin_ztie(char *nam, char **args, Options ops, UNUSED(int func))
return 1;
}
+ addmodulefd(gdbm_fdesc(dbf), FDT_MODULE);
+ append_tied_name(pmname);
+
tied_param->gsu.h = &gdbm_hash_gsu;
/* Allocate parameter sub-gsu, fill dbf field.