From 7832417cd58ad0abc5745fa4ac256c7442fd3f9a Mon Sep 17 00:00:00 2001 From: Jonathan McDowell Date: Mon, 31 May 2004 23:48:27 +0000 Subject: [PATCH] cscvs to tla changeset 135 Author: noodles Date: 2004/05/28 02:55:49 Fix makewordlistfromkey allocation of word list (dsilvers). --- keydb_fs.c | 4 +--- wordlist.c | 15 +++++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/keydb_fs.c b/keydb_fs.c index 7e739d8..2305808 100644 --- a/keydb_fs.c +++ b/keydb_fs.c @@ -5,7 +5,7 @@ * * Copyright 2004 Daniel Silverstone and Project Purple * - * $Id: keydb_fs.c,v 1.1 2004/05/27 03:37:58 noodles Exp $ + * $Id: keydb_fs.c,v 1.2 2004/05/28 02:55:49 noodles Exp $ */ #include @@ -279,8 +279,6 @@ int store_key(struct openpgp_publickey *publickey, bool intrans, wl = wl->next; } - - llfree(wordlist, NULL); } diff --git a/wordlist.c b/wordlist.c index 0a9a836..173cc56 100644 --- a/wordlist.c +++ b/wordlist.c @@ -5,7 +5,7 @@ * * Copyright 2004 Project Purple * - * $Id: wordlist.c,v 1.1 2004/05/27 03:34:35 noodles Exp $ + * $Id: wordlist.c,v 1.2 2004/05/28 02:55:49 noodles Exp $ */ #include @@ -80,12 +80,19 @@ struct ll *makewordlist(struct ll *wordlist, char *word) struct ll *makewordlistfromkey(struct ll *wordlist, struct openpgp_publickey *key) { - char **uids; - int i; + char **uids; + int i; + struct ll *words = NULL; + struct ll *wl = NULL; uids = keyuids(key, NULL); for (i = 0; uids[i] != NULL; ++i) { - wordlist = makewordlist(wordlist, uids[i]); + words = makewordlist(wordlist, uids[i]); + for (wl = words; wl->next; wl = wl->next) { + if (llfind(wordlist, wl->object, strcmp) == NULL) { + wordlist = lladd(wordlist, strdup(wl->object)); + } + } free(uids[i]); uids[i] = NULL; } -- 2.30.2