From ec0c35d1b8be02e4d6c43b77e25c354741b27231 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 26 May 2023 11:56:36 +0200 Subject: [PATCH] common: New function nve_set * common/name-value.c (nve_set): New. -- Taken from 2.2 commit 706adf669173ec604158e4a2f4337e3da6cb1e45 --- common/name-value.c | 24 ++++++++++++++++++++++++ common/name-value.h | 3 +++ 2 files changed, 27 insertions(+) diff --git a/common/name-value.c b/common/name-value.c index 67429e47f..6f3df5a8d 100644 --- a/common/name-value.c +++ b/common/name-value.c @@ -497,6 +497,30 @@ nvc_set (nvc_t pk, const char *name, const char *value) } +/* Update entry E to VALUE. */ +gpg_error_t +nve_set (nve_t e, const char *value) +{ + char *v; + + if (!e) + return GPG_ERR_INV_ARG; + + v = xtrystrdup (value? value:""); + if (!v) + return my_error_from_syserror (); + + free_strlist_wipe (e->raw_value); + e->raw_value = NULL; + if (e->value) + wipememory (e->value, strlen (e->value)); + xfree (e->value); + e->value = v; + + return 0; +} + + /* Delete the given entry from PK. */ void nvc_delete (nvc_t pk, nve_t entry) diff --git a/common/name-value.h b/common/name-value.h index 504b5d0f0..b3fc2f63c 100644 --- a/common/name-value.h +++ b/common/name-value.h @@ -92,6 +92,9 @@ gpg_error_t nvc_add (nvc_t pk, const char *name, const char *value); first entry is updated. */ gpg_error_t nvc_set (nvc_t pk, const char *name, const char *value); +/* Update entry E to VALUE. */ +gpg_error_t nve_set (nve_t e, const char *value); + /* Delete the given entry from PK. */ void nvc_delete (nvc_t pk, nve_t pke);