diff options
author | Werner Koch <[email protected]> | 2023-11-21 07:55:56 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2023-11-21 07:56:24 +0000 |
commit | 813bb65d952d7d02039f8c04c18cc74a512eacf7 (patch) | |
tree | 03a7007c4c1e6a5a56a9c7d5b9f43fe823d59727 /common/name-value.c | |
parent | agent: Update the key file only if not changed. (diff) | |
download | gnupg-813bb65d952d7d02039f8c04c18cc74a512eacf7.tar.gz gnupg-813bb65d952d7d02039f8c04c18cc74a512eacf7.zip |
common: Check wether to set the modified flag in nve_set.
* common/name-value.c (nvc_set): Factor code out to ...
(nve_set): here.
Diffstat (limited to 'common/name-value.c')
-rw-r--r-- | common/name-value.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/common/name-value.c b/common/name-value.c index b7bc32844..ea6a84f56 100644 --- a/common/name-value.c +++ b/common/name-value.c @@ -495,34 +495,13 @@ gpg_error_t nvc_set (nvc_t pk, const char *name, const char *value) { nve_t e; - char *v; if (! valid_name (name)) return GPG_ERR_INV_NAME; e = nvc_lookup (pk, name); if (e) - { - if (e->value && value && !strcmp (e->value, value)) - { - /* Setting same value - ignore this call and don't set the - * modified flag. */ - return 0; - } - - v = xtrystrdup (value); - if (v == NULL) - 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; - pk->modified = 1; - return 0; - } + return nve_set (pk, e, value); else return nvc_add (pk, name, value); } @@ -538,6 +517,13 @@ nve_set (nvc_t pk, nve_t e, const char *value) if (!e) return GPG_ERR_INV_ARG; + if (e->value && value && !strcmp (e->value, value)) + { + /* Setting same value - ignore this call and don't set the + * modified flag (if PK is given). */ + return 0; + } + v = xtrystrdup (value? value:""); if (!v) return my_error_from_syserror (); |