aboutsummaryrefslogtreecommitdiffstats
path: root/common/name-value.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2023-05-26 09:56:36 +0000
committerWerner Koch <[email protected]>2023-05-26 09:56:36 +0000
commita048a93ed2c3171cfc21b830762adada8965d92c (patch)
treeba250983f64446b662310a1aabf32fbb2e6a3749 /common/name-value.c
parentgpg: Skip keys found via ADSKs. (diff)
downloadgnupg-a048a93ed2c3171cfc21b830762adada8965d92c.tar.gz
gnupg-a048a93ed2c3171cfc21b830762adada8965d92c.zip
common: New function nve_set
* common/name-value.c (nve_set): New. -- Taken from 2.2 commit 706adf669173ec604158e4a2f4337e3da6cb1e45
Diffstat (limited to 'common/name-value.c')
-rw-r--r--common/name-value.c24
1 files changed, 24 insertions, 0 deletions
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)