X-Git-Url: https://the.earth.li/gitweb/?p=onak.git;a=blobdiff_plain;f=merge.c;h=9d03411cde1f3a8eaba108b0fc51c917e152dde5;hp=305c60a740aab0819370b428a05fa7d2364e3162;hb=76f079e5ebdb34acaaa2462a8d915ee06d3c8425;hpb=6df51fef2960f533a741fb7290867387ed3fbba5 diff --git a/merge.c b/merge.c index 305c60a..9d03411 100644 --- a/merge.c +++ b/merge.c @@ -163,17 +163,15 @@ struct openpgp_signedpacket_list *find_signed_packet( * removes it if found. Assumes the packet can only exist a maximum of * once in the list. */ -bool remove_signed_packet(struct openpgp_signedpacket_list **packet_list, +static void remove_signed_packet(struct openpgp_signedpacket_list **packet_list, struct openpgp_signedpacket_list **list_end, struct openpgp_packet *packet) { struct openpgp_signedpacket_list *cur = NULL; struct openpgp_signedpacket_list *prev = NULL; - bool found = false; - for (cur = *packet_list; !found && (cur != NULL); cur = cur->next) { + for (cur = *packet_list; cur != NULL; cur = cur->next) { if (compare_packets(cur->packet, packet) == 0) { - found = true; if (prev == NULL) { *packet_list = cur->next; } else { @@ -182,14 +180,14 @@ bool remove_signed_packet(struct openpgp_signedpacket_list **packet_list, if (cur->next == NULL) { *list_end = prev; } - /* - * TODO: Free the removed signed packet... - */ + cur->next = NULL; + free_signedpacket_list(cur); + break; } prev = cur; } - return found; + return; } /**