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 <buildbot@rampaginggeek.com>
Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk>
Tested-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
This commit is contained in:
Jeffrey Altman 2011-11-16 00:29:34 -05:00 committed by Jeffrey Altman
parent 1c97c04add
commit 833d076e04

View File

@ -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;