showhostkey: fix regression after RHEL-69403

Resolves: RHEL-75975
Signed-off-by: Daiki Ueno <dueno@redhat.com>
This commit is contained in:
Daiki Ueno 2025-01-24 14:46:10 +09:00
parent 764185f5e2
commit d1fdab45d9

View File

@ -1,4 +1,4 @@
From ddf4fcee5812e453f784e7b453f52d242baf060c Mon Sep 17 00:00:00 2001 From dfb8a1244c7c902e0daa6ae19fe4b4171297ad95 Mon Sep 17 00:00:00 2001
From: Daiki Ueno <dueno@redhat.com> From: Daiki Ueno <dueno@redhat.com>
Date: Sat, 23 Nov 2024 10:18:03 +0900 Date: Sat, 23 Nov 2024 10:18:03 +0900
Subject: [PATCH 1/2] secrets: allocate secret_pubkey_stuff separately from Subject: [PATCH 1/2] secrets: allocate secret_pubkey_stuff separately from
@ -13,8 +13,8 @@ Signed-off-by: Daiki Ueno <dueno@redhat.com>
lib/libswan/secrets.c | 32 ++++++++++--------- lib/libswan/secrets.c | 32 ++++++++++---------
programs/pluto/ikev2_eap.c | 2 +- programs/pluto/ikev2_eap.c | 2 +-
programs/pluto/keys.c | 6 ++-- programs/pluto/keys.c | 6 ++--
programs/showhostkey/showhostkey.c | 31 ++++++++++-------- programs/showhostkey/showhostkey.c | 32 +++++++++++--------
8 files changed, 54 insertions(+), 49 deletions(-) 8 files changed, 55 insertions(+), 49 deletions(-)
diff --git a/include/secrets.h b/include/secrets.h diff --git a/include/secrets.h b/include/secrets.h
index 8f9f990c10..c9272d71e0 100644 index 8f9f990c10..c9272d71e0 100644
@ -312,7 +312,7 @@ index 359ed87f75..e71fccb825 100644
c->name, type->name); c->name, type->name);
return pks; return pks;
diff --git a/programs/showhostkey/showhostkey.c b/programs/showhostkey/showhostkey.c diff --git a/programs/showhostkey/showhostkey.c b/programs/showhostkey/showhostkey.c
index aaef793914..65b95ba596 100644 index aaef793914..da4e40d135 100644
--- a/programs/showhostkey/showhostkey.c --- a/programs/showhostkey/showhostkey.c
+++ b/programs/showhostkey/showhostkey.c +++ b/programs/showhostkey/showhostkey.c
@@ -172,14 +172,14 @@ static void print(struct secret_stuff *pks, @@ -172,14 +172,14 @@ static void print(struct secret_stuff *pks,
@ -396,7 +396,7 @@ index aaef793914..65b95ba596 100644
.kind = type->private_key_kind, .kind = type->private_key_kind,
.line = 0, .line = 0,
- .u.pubkey.private_key = SECKEY_CopyPrivateKey(private_key), /* add reference */ - .u.pubkey.private_key = SECKEY_CopyPrivateKey(private_key), /* add reference */
+ .u.pubkey = &pubkey, + .u.pubkey = clone_thing(pubkey, "pubkey"),
}; };
- type->extract_pubkey_content(&pks.u.pubkey.content, pubk, ckaid_nss); - type->extract_pubkey_content(&pks.u.pubkey.content, pubk, ckaid_nss);
@ -404,7 +404,7 @@ index aaef793914..65b95ba596 100644
/* /*
* Only count private keys that get processed. * Only count private keys that get processed.
*/ */
@@ -513,8 +516,8 @@ static struct secret_stuff *foreach_nss_private_key(secret_eval func, @@ -513,8 +516,9 @@ static struct secret_stuff *foreach_nss_private_key(secret_eval func,
break; break;
} }
@ -412,14 +412,15 @@ index aaef793914..65b95ba596 100644
- type->free_pubkey_content(&pks.u.pubkey.content); - type->free_pubkey_content(&pks.u.pubkey.content);
+ SECKEY_DestroyPrivateKey(pks.u.pubkey->private_key); /* destroy reference */ + SECKEY_DestroyPrivateKey(pks.u.pubkey->private_key); /* destroy reference */
+ type->free_pubkey_content(&pks.u.pubkey->content); + type->free_pubkey_content(&pks.u.pubkey->content);
+ pfreeany(pks.u.pubkey);
if (ret < 0) { if (ret < 0) {
break; break;
-- --
2.47.0 2.48.1
From 9e9bdbc27aedb035e769660b65a92e173ee9a5f9 Mon Sep 17 00:00:00 2001 From c346964929e12e6fe7ea901cfb6d6b899e06fd74 Mon Sep 17 00:00:00 2001
From: Andrew Cagney <cagney@gnu.org> From: Andrew Cagney <cagney@gnu.org>
Date: Fri, 8 Nov 2024 17:45:53 -0500 Date: Fri, 8 Nov 2024 17:45:53 -0500
Subject: [PATCH 2/2] crypto: refcnt struct secret_pubkey_stuff when passing to Subject: [PATCH 2/2] crypto: refcnt struct secret_pubkey_stuff when passing to
@ -578,5 +579,5 @@ index 4fe661b559..2973569a90 100644
pfreeany(*task); pfreeany(*task);
} }
-- --
2.47.0 2.48.1