diff --git a/libreswan-5.1-rereadsecrets.patch b/libreswan-5.1-rereadsecrets.patch index be23585..7ac8cc5 100644 --- a/libreswan-5.1-rereadsecrets.patch +++ b/libreswan-5.1-rereadsecrets.patch @@ -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 Date: Sat, 23 Nov 2024 10:18:03 +0900 Subject: [PATCH 1/2] secrets: allocate secret_pubkey_stuff separately from @@ -13,8 +13,8 @@ Signed-off-by: Daiki Ueno lib/libswan/secrets.c | 32 ++++++++++--------- programs/pluto/ikev2_eap.c | 2 +- programs/pluto/keys.c | 6 ++-- - programs/showhostkey/showhostkey.c | 31 ++++++++++-------- - 8 files changed, 54 insertions(+), 49 deletions(-) + programs/showhostkey/showhostkey.c | 32 +++++++++++-------- + 8 files changed, 55 insertions(+), 49 deletions(-) diff --git a/include/secrets.h b/include/secrets.h index 8f9f990c10..c9272d71e0 100644 @@ -312,7 +312,7 @@ index 359ed87f75..e71fccb825 100644 c->name, type->name); return pks; 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 +++ b/programs/showhostkey/showhostkey.c @@ -172,14 +172,14 @@ static void print(struct secret_stuff *pks, @@ -396,7 +396,7 @@ index aaef793914..65b95ba596 100644 .kind = type->private_key_kind, .line = 0, - .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); @@ -404,7 +404,7 @@ index aaef793914..65b95ba596 100644 /* * 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; } @@ -412,14 +412,15 @@ index aaef793914..65b95ba596 100644 - type->free_pubkey_content(&pks.u.pubkey.content); + SECKEY_DestroyPrivateKey(pks.u.pubkey->private_key); /* destroy reference */ + type->free_pubkey_content(&pks.u.pubkey->content); ++ pfreeany(pks.u.pubkey); if (ret < 0) { 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 Date: Fri, 8 Nov 2024 17:45:53 -0500 Subject: [PATCH 2/2] crypto: refcnt struct secret_pubkey_stuff when passing to @@ -578,5 +579,5 @@ index 4fe661b559..2973569a90 100644 pfreeany(*task); } -- -2.47.0 +2.48.1