Improve free functions of the keyfiles.
git-svn-id: svn+ssh://svn.berlios.de/svnroot/repos/libssh/trunk@389 7dcaeef0-15fb-0310-b436-a5af3365683c
Этот коммит содержится в:
родитель
226e48b4b7
Коммит
f7959bd5eb
@ -660,23 +660,20 @@ PRIVATE_KEY *_privatekey_from_file(void *session,char *filename,int type){
|
||||
/** \brief deallocate a private key
|
||||
* \param prv a PRIVATE_KEY object
|
||||
*/
|
||||
void private_key_free(PRIVATE_KEY *prv){
|
||||
void private_key_free(PRIVATE_KEY *prv) {
|
||||
if (prv == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
#ifdef HAVE_LIBGCRYPT
|
||||
if(prv->dsa_priv)
|
||||
gcry_sexp_release(prv->dsa_priv);
|
||||
if(prv->rsa_priv)
|
||||
gcry_sexp_release(prv->rsa_priv);
|
||||
gcry_sexp_release(prv->dsa_priv);
|
||||
gcry_sexp_release(prv->rsa_priv);
|
||||
#elif defined HAVE_LIBCRYPTO
|
||||
if(prv->dsa_priv)
|
||||
DSA_free(prv->dsa_priv);
|
||||
if(prv->rsa_priv)
|
||||
RSA_free(prv->rsa_priv);
|
||||
DSA_free(prv->dsa_priv);
|
||||
RSA_free(prv->rsa_priv);
|
||||
#endif
|
||||
memset(prv,0,sizeof(PRIVATE_KEY));
|
||||
free(prv);
|
||||
memset(prv, 0, sizeof(PRIVATE_KEY));
|
||||
SAFE_FREE(prv);
|
||||
}
|
||||
|
||||
/** \brief Retrieve a public key from a file
|
||||
@ -825,12 +822,16 @@ static char *lowercase(const char* str) {
|
||||
/** \brief frees a token array
|
||||
* \internal
|
||||
*/
|
||||
static void tokens_free(char **tokens){
|
||||
free(tokens[0]);
|
||||
/* It's not needed to free other pointers because tokens generated by
|
||||
* space_tokenize fit all in one malloc
|
||||
*/
|
||||
free(tokens);
|
||||
static void tokens_free(char **tokens) {
|
||||
if (tokens == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
SAFE_FREE(tokens[0]);
|
||||
/* It's not needed to free other pointers because tokens generated by
|
||||
* space_tokenize fit all in one malloc
|
||||
*/
|
||||
SAFE_FREE(tokens);
|
||||
}
|
||||
/** \brief returns one line of known host file
|
||||
* will return a token array containing (host|ip) keytype key
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user