summaryrefslogtreecommitdiffstats
path: root/pki/base/tps/src/engine/RA.cpp
diff options
context:
space:
mode:
authoralee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2009-05-27 19:55:45 +0000
committeralee <alee@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2009-05-27 19:55:45 +0000
commita8b1581a7df11ac9681b3d8829efe313ebe278fd (patch)
treeb0650bdf163b72e7a64313948f752060a9d3d550 /pki/base/tps/src/engine/RA.cpp
parent70fa28d5394aa15ffefe2abda296069b161271fb (diff)
Bugzilla Bug #499493 - run tps under valgrind
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@500 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
Diffstat (limited to 'pki/base/tps/src/engine/RA.cpp')
-rw-r--r--pki/base/tps/src/engine/RA.cpp61
1 files changed, 46 insertions, 15 deletions
diff --git a/pki/base/tps/src/engine/RA.cpp b/pki/base/tps/src/engine/RA.cpp
index 36aa256b8..e82c1643b 100644
--- a/pki/base/tps/src/engine/RA.cpp
+++ b/pki/base/tps/src/engine/RA.cpp
@@ -172,6 +172,14 @@ RA::RA ()
*/
RA::~RA ()
{
+ do_free(m_signedAuditSelectedEvents);
+ do_free(m_signedAuditSelectableEvents);
+ do_free(m_signedAuditNonSelectableEvents);
+
+ if (m_cfg != NULL) {
+ delete m_cfg;
+ m_cfg = NULL;
+ }
}
TPS_PUBLIC ConfigStore *RA::GetConfigStore()
@@ -184,6 +192,14 @@ PRLock *RA::GetVerifyLock()
return m_verify_lock;
}
+void RA::do_free(char *p)
+{
+ if (p != NULL) {
+ PR_Free(p);
+ p = NULL;
+ }
+}
+
int RA::InitializeSignedAudit()
{
// cfu
@@ -502,18 +518,21 @@ loser:
}
int RA::testTokendb() {
- // try to see if we can talk to the database
- int st = 0;
- LDAPMessage *ldapResult = NULL;
- const char * filter = "(cn=0000000000080000*)";
-
- if ((st = find_tus_db_entries(filter, 0, &ldapResult)) != LDAP_SUCCESS) {
- RA::Debug("RA::testing", "response from token DB failed");
- } else {
- RA::Debug("RA::testing", "response from token DB succeeded");
- }
+ // try to see if we can talk to the database
+ int st = 0;
+ LDAPMessage *ldapResult = NULL;
+ const char * filter = "(cn=0000000000080000*)";
- return st;
+ if ((st = find_tus_db_entries(filter, 0, &ldapResult)) != LDAP_SUCCESS) {
+ RA::Debug("RA::testing", "response from token DB failed");
+ } else {
+ RA::Debug("RA::testing", "response from token DB succeeded");
+ }
+ if (ldapResult != NULL) {
+ ldap_msgfree(ldapResult);
+ }
+
+ return st;
}
/*
@@ -939,6 +958,9 @@ void RA::RecoverKey(RA_Session *session, const char* cuid,
else {
status_s = status_b->string();
status = atoi(status_s);
+ if (status_s != NULL) {
+ PR_Free(status_s);
+ }
}
@@ -1151,6 +1173,9 @@ void RA::ServerSideKeyGen(RA_Session *session, const char* cuid,
} else {
status_s = status_b->string();
status = atoi(status_s);
+ if (status_s != NULL) {
+ PR_Free(status_s);
+ }
}
char * tmp = NULL;
@@ -1349,6 +1374,9 @@ PK11SymKey *RA::ComputeSessionKey(RA_Session *session,
else {
status_s = status_b->string();
status = atoi(status_s);
+ if (status_s != NULL) {
+ PR_Free(status_s);
+ }
}
sessionKey_s = ra_pb->find_val_s(TKS_RESPONSE_SessionKey);
@@ -1776,11 +1804,11 @@ void RA::AuditThis (RA_Log_Level level, const char *func_name, const char *fmt,
}
loser:
+ if (audit_msg)
+ PR_Free(audit_msg);
if (m_audit_signed==true) {
if (sign_ctxt)
SGN_DestroyContext(sign_ctxt, PR_TRUE);
- if (audit_msg)
- PR_Free(audit_msg);
if (sig_b64)
PR_Free(sig_b64);
if (out_sig_b64)
@@ -2401,7 +2429,7 @@ int RA::tdb_update_certificates(char* cuid, char **tokentypes, char *userid, CER
int i = 0;
if ((rc = find_tus_db_entry(cuid, 0, &ldapResult)) != LDAP_SUCCESS) {
- return rc;
+ goto loser;
}
/* update certificates */
@@ -2448,7 +2476,10 @@ int RA::tdb_update_certificates(char* cuid, char **tokentypes, char *userid, CER
ktypes[i], "active");
}
}
-
+loser:
+ if (ldapResult != NULL) {
+ ldap_msgfree(ldapResult);
+ }
return rc;
}