diff options
author | Werner Koch <[email protected]> | 2023-05-26 09:56:36 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2023-05-26 09:56:36 +0000 |
commit | a048a93ed2c3171cfc21b830762adada8965d92c (patch) | |
tree | ba250983f64446b662310a1aabf32fbb2e6a3749 | |
parent | gpg: Skip keys found via ADSKs. (diff) | |
download | gnupg-a048a93ed2c3171cfc21b830762adada8965d92c.tar.gz gnupg-a048a93ed2c3171cfc21b830762adada8965d92c.zip |
common: New function nve_set
* common/name-value.c (nve_set): New.
--
Taken from 2.2 commit 706adf669173ec604158e4a2f4337e3da6cb1e45
-rw-r--r-- | common/name-value.c | 24 | ||||
-rw-r--r-- | common/name-value.h | 3 |
2 files changed, 27 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) 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); |