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)