mirror of
https://github.com/RetroShare/RetroShare.git
synced 2024-10-01 02:35:48 -04:00
memory leaks from missing gpgme_data_release
- AuthGPG::privateSignCertificate - AuthGPG::privateTrustCertificate git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3160 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
09ac44316a
commit
19674c4d86
@ -1439,14 +1439,17 @@ int AuthGPG::privateSignCertificate(std::string id)
|
||||
|
||||
gpgme_signers_clear(CTX);
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_signers_add(CTX, ownKey))) {
|
||||
gpgme_data_release(out);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_op_edit(CTX, signKey, keySignCallback, ¶ms, out))) {
|
||||
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_op_edit(CTX, signKey, keySignCallback, ¶ms, out))) {
|
||||
gpgme_data_release(out);
|
||||
return 0;
|
||||
}
|
||||
|
||||
gpgme_data_release(out);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -1466,32 +1469,35 @@ int AuthGPG::privateTrustCertificate(std::string id, int trustlvl)
|
||||
return 0;
|
||||
}
|
||||
|
||||
{
|
||||
RsStackMutex stack(gpgMtx);
|
||||
{
|
||||
RsStackMutex stack(gpgMtx);
|
||||
|
||||
gpgcert trustCert = mKeyList.find(id)->second;
|
||||
gpgme_key_t trustKey = trustCert.key;
|
||||
std::string trustString;
|
||||
std::ostringstream trustStrOut;
|
||||
trustStrOut << trustlvl;
|
||||
class TrustParams sparams(trustStrOut.str());
|
||||
class EditParams params(TRUST_START, &sparams);
|
||||
gpgme_data_t out;
|
||||
gpg_error_t ERR;
|
||||
gpgcert trustCert = mKeyList.find(id)->second;
|
||||
gpgme_key_t trustKey = trustCert.key;
|
||||
std::string trustString;
|
||||
std::ostringstream trustStrOut;
|
||||
trustStrOut << trustlvl;
|
||||
class TrustParams sparams(trustStrOut.str());
|
||||
class EditParams params(TRUST_START, &sparams);
|
||||
gpgme_data_t out;
|
||||
gpg_error_t ERR;
|
||||
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_data_new(&out))) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_data_new(&out))) {
|
||||
return 0;
|
||||
}
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_op_edit(CTX, trustKey, trustCallback, ¶ms, out))) {
|
||||
gpgme_data_release(out);
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(GPG_ERR_NO_ERROR != (ERR = gpgme_op_edit(CTX, trustKey, trustCallback, ¶ms, out)))
|
||||
return 0;
|
||||
gpgme_data_release(out);
|
||||
|
||||
//the key ref has changed, we got to get rid of the old reference.
|
||||
trustCert.key = NULL;
|
||||
}
|
||||
//the key ref has changed, we got to get rid of the old reference.
|
||||
trustCert.key = NULL;
|
||||
}
|
||||
|
||||
storeAllKeys_locked();
|
||||
storeAllKeys_locked();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user