From b8b4d5c9e55c73b2a2f0f3b5aee292de2bb0b512 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 20 Sep 2011 16:26:37 +0200 Subject: [PATCH] avoid use of freed pointer Without this patch, pk2 would be freed twice. >From 2a18a4b757e0896e738fefbbaa8ff8c23a9edf89 Mon Sep 17 00:00:00 2001 From: Jim Meyering Date: Tue, 20 Sep 2011 16:20:39 +0200 Subject: [PATCH] avoid use of freed pointer If we free pk2 at the top of the for-loop, set it to NULL so that we don't free it again just before returning. * revoke.c (gen_desig_revoke): Don't use pk2 after freeing it. --- g10/ChangeLog | 7 +++++++ g10/revoke.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/g10/ChangeLog b/g10/ChangeLog index be2ad0b0a..8ae574717 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,10 @@ +2011-09-20 Jim Meyering + + avoid use of freed pointer + If we free pk2 at the top of the for-loop, set it to NULL + so that we don't free it again just before returning. + * revoke.c (gen_desig_revoke): Don't use pk2 after freeing it. + 2011-09-20 Werner Koch * sign.c (sign_file, clearsign_file, sign_symencrypt_file): diff --git a/g10/revoke.c b/g10/revoke.c index c18dfb989..2c696cc9c 100644 --- a/g10/revoke.c +++ b/g10/revoke.c @@ -263,7 +263,10 @@ gen_desig_revoke( const char *uname, strlist_t locusr ) SK_LIST list; if (pk2) - free_public_key (pk2); + { + free_public_key (pk2); + pk2 = NULL; + } if(sk_list) {