From 833d076e04ac09270a203a9ff449ae2af8bdad7e Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 16 Nov 2011 00:29:34 -0500 Subject: [PATCH] auth: initKeys before first error exit path In afsconf_OpenInternal() _afsconf_InitKeys() must be called before the first opportunity to call afsconf_CloseInternal() or a crash can occur if the CellServDB file cannot be parsed. Change-Id: I5b2487056a24d0c4ad78921d85df755758c7679e Reviewed-on: http://gerrit.openafs.org/6059 Tested-by: BuildBot Reviewed-by: Simon Wilkinson Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- src/auth/cellconfig.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/auth/cellconfig.c b/src/auth/cellconfig.c index 46e1c73680..b01ac456da 100644 --- a/src/auth/cellconfig.c +++ b/src/auth/cellconfig.c @@ -659,6 +659,9 @@ afsconf_OpenInternal(struct afsconf_dir *adir, char *cell, return -1; } + /* init the keys queue before any call to afsconf_CloseInternal() */ + _afsconf_InitKeys(adir); + /* The CellServDB file is now open. * The following code parses the contents of the * file and creates a list with the first cell entry @@ -810,9 +813,8 @@ afsconf_OpenInternal(struct afsconf_dir *adir, char *cell, if (tf != NULL) fclose(tf); - /* now read the fs keys, if possible */ - _afsconf_InitKeys(adir); + /* now read the fs keys, if possible */ code = _afsconf_LoadKeys(adir); return code;