From e34e0220abd1b327a088c9a68632545d33569b41 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Mon, 2 May 2022 07:40:52 +0100 Subject: [PATCH] Centralise creation of a host_ca structure. This will allow the central host_ca_new function to pre-populate the structure with default values for the fields, so that once I add more options to CA configuration they can take their default values when loading a saved record from a previous PuTTY version. --- storage.h | 2 ++ unix/storage.c | 3 +-- utils/CMakeLists.txt | 2 +- utils/{host_ca_free.c => host_ca_new_free.c} | 7 +++++++ windows/storage.c | 3 +-- 5 files changed, 12 insertions(+), 5 deletions(-) rename utils/{host_ca_free.c => host_ca_new_free.c} (74%) diff --git a/storage.h b/storage.h index df0c3e29..0487bf7c 100644 --- a/storage.h +++ b/storage.h @@ -112,6 +112,8 @@ void enum_host_ca_finish(host_ca_enum *handle); host_ca *host_ca_load(const char *name); char *host_ca_save(host_ca *); /* NULL on success, or dynamic error msg */ char *host_ca_delete(const char *name); /* likewise */ + +host_ca *host_ca_new(void); /* initialises to default settings */ void host_ca_free(host_ca *); /* ---------------------------------------------------------------------- diff --git a/unix/storage.c b/unix/storage.c index 8be482cd..b3a9e8f1 100644 --- a/unix/storage.c +++ b/unix/storage.c @@ -643,8 +643,7 @@ host_ca *host_ca_load(const char *name) if (!fp) return NULL; - host_ca *hca = snew(host_ca); - memset(hca, 0, sizeof(*hca)); + host_ca *hca = host_ca_new(); hca->name = dupstr(name); size_t wcsize = 0; diff --git a/utils/CMakeLists.txt b/utils/CMakeLists.txt index 9d079ecb..dfd28efd 100644 --- a/utils/CMakeLists.txt +++ b/utils/CMakeLists.txt @@ -26,7 +26,7 @@ add_sources_from_current_dir(utils encode_utf8.c encode_wide_string_as_utf8.c fgetline.c - host_ca_free.c + host_ca_new_free.c host_strchr.c host_strchr_internal.c host_strcspn.c diff --git a/utils/host_ca_free.c b/utils/host_ca_new_free.c similarity index 74% rename from utils/host_ca_free.c rename to utils/host_ca_new_free.c index 5fb3a46c..f77c84d8 100644 --- a/utils/host_ca_free.c +++ b/utils/host_ca_new_free.c @@ -2,6 +2,13 @@ #include "misc.h" #include "storage.h" +host_ca *host_ca_new(void) +{ + host_ca *hca = snew(host_ca); + memset(hca, 0, sizeof(*hca)); + return hca; +} + void host_ca_free(host_ca *hca) { sfree(hca->name); diff --git a/windows/storage.c b/windows/storage.c index 7e74e392..c58f6d85 100644 --- a/windows/storage.c +++ b/windows/storage.c @@ -424,8 +424,7 @@ host_ca *host_ca_load(const char *name) if (!rkey) return NULL; - host_ca *hca = snew(host_ca); - memset(hca, 0, sizeof(*hca)); + host_ca *hca = host_ca_new(); hca->name = dupstr(name); if ((s = get_reg_sz(rkey, "PublicKey")) != NULL)