X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/34b03028378025ad22c8d29f70e81109cee690c2..8d14d66b84cc370cefe54b33de1b95bb49c90bf6:/mem.c?ds=sidebyside diff --git a/mem.c b/mem.c index 0795bf3..47f2967 100644 --- a/mem.c +++ b/mem.c @@ -6,14 +6,14 @@ * Copyright 2002 Project Purple */ -#include #include #include +#include #include "keystructs.h" #include "ll.h" +#include "log.h" #include "mem.h" -#include "stats.h" /** * packet_dup - duplicate an OpenPGP packet. @@ -27,7 +27,7 @@ struct openpgp_packet *packet_dup(struct openpgp_packet *packet) { struct openpgp_packet *newpacket = NULL; - assert(packet != NULL); + log_assert(packet != NULL); newpacket = malloc(sizeof (struct openpgp_packet)); if (newpacket != NULL) { @@ -59,8 +59,8 @@ void packet_list_add(struct openpgp_packet_list **list, struct openpgp_packet_list **list_end, struct openpgp_packet_list *packet_list) { - assert(list != NULL); - assert(list_end != NULL); + log_assert(list != NULL); + log_assert(list_end != NULL); for (; packet_list != NULL; packet_list = packet_list->next) { ADD_PACKET_TO_LIST((*list_end), @@ -81,7 +81,7 @@ void packet_list_add(struct openpgp_packet_list **list, * including the data part. */ void free_packet(struct openpgp_packet *packet) { - assert(packet != NULL); + log_assert(packet != NULL); if (packet->data != NULL) { free(packet->data); @@ -100,8 +100,6 @@ void free_packet(struct openpgp_packet *packet) { void free_packet_list(struct openpgp_packet_list *packet_list) { struct openpgp_packet_list *nextpacket = NULL; - assert(packet_list != NULL); - while (packet_list != NULL) { nextpacket = packet_list->next; if (packet_list->packet != NULL) { @@ -123,8 +121,6 @@ void free_signedpacket_list( struct openpgp_signedpacket_list *signedpacket_list) { struct openpgp_signedpacket_list *nextpacket = NULL; - assert(signedpacket_list != NULL); - while (signedpacket_list != NULL) { nextpacket = signedpacket_list->next; if (signedpacket_list->packet != NULL) { @@ -148,17 +144,15 @@ void free_signedpacket_list( void free_publickey(struct openpgp_publickey *key) { struct openpgp_publickey *nextkey = NULL; - assert(key != NULL); - while (key != NULL) { nextkey = key->next; if (key->publickey != NULL) { free_packet(key->publickey); key->publickey = NULL; } - if (key->revocations != NULL) { - free_packet_list(key->revocations); - key->revocations = NULL; + if (key->sigs != NULL) { + free_packet_list(key->sigs); + key->sigs = NULL; } if (key->uids != NULL) { free_signedpacket_list(key->uids); @@ -188,6 +182,10 @@ void free_statskey(struct stats_key *key) llfree(key->sigs, NULL); key->sigs = NULL; } + if (key->signs != NULL) { + llfree(key->signs, NULL); + key->signs = NULL; + } free(key); } }