aboutsummaryrefslogtreecommitdiffstats
path: root/g10/trustdb.c
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-07-01 10:48:57 +0000
committerJustus Winter <[email protected]>2016-07-01 10:48:57 +0000
commit44d4c695722d96b3bbef16f2843f62413b9670cd (patch)
tree93dfc43b0559c195a6ac9e0b7454d4d8d3a43a47 /g10/trustdb.c
parentg10: Fix memory leak. (diff)
downloadgnupg-44d4c695722d96b3bbef16f2843f62413b9670cd.tar.gz
gnupg-44d4c695722d96b3bbef16f2843f62413b9670cd.zip
g10: Fix memory leak.
* g10/trustdb.c (tdb_get_validity_core): Fix kbnode leak. Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'g10/trustdb.c')
-rw-r--r--g10/trustdb.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 527a23d2f..dd74d187b 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -1022,17 +1022,18 @@ tdb_get_validity_core (ctrl_t ctrl,
#ifdef USE_TOFU
if (opt.trust_model == TM_TOFU || opt.trust_model == TM_TOFU_PGP)
{
- kbnode_t user_id_node = NULL; /* Silence -Wmaybe-uninitialized. */
+ kbnode_t user_id_node = NULL;
+ kbnode_t n = NULL; /* Silence -Wmaybe-uninitialized. */
int user_ids = 0;
int user_ids_expired = 0;
/* If the caller didn't supply a user id then iterate over all
uids. */
if (! uid)
- user_id_node = get_pubkeyblock (main_pk->keyid);
+ user_id_node = n = get_pubkeyblock (main_pk->keyid);
while (uid
- || (user_id_node = find_next_kbnode (user_id_node, PKT_USER_ID)))
+ || (n = find_next_kbnode (n, PKT_USER_ID)))
{
unsigned int tl;
PKT_user_id *user_id;
@@ -1040,7 +1041,7 @@ tdb_get_validity_core (ctrl_t ctrl,
if (uid)
user_id = uid;
else
- user_id = user_id_node->pkt->pkt.user_id;
+ user_id = n->pkt->pkt.user_id;
/* If the user id is revoked or expired, then skip it. */
if (user_id->is_revoked || user_id->is_expired)
@@ -1094,6 +1095,7 @@ tdb_get_validity_core (ctrl_t ctrl,
now. */
break;
}
+ release_kbnode (user_id_node);
}
#endif /*USE_TOFU*/