From e47de853820000ddf383e7b790fbc435e3378d66 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 14 Dec 2020 15:15:17 +0100 Subject: [PATCH] dirmngr: Fix adding keys to an LDAP server. * dirmngr/ks-engine-ldap.c (ks_ldap_put): Extract attribites into addlist. -- The code used the wrong list which resulting in adding attributes marked for deletion. In particular Active Directory does not accept such an data and rejects them. The bug was introduced into 2.1 while porting the code from the old keyserver helpers to dirmngr. Fixes-commit: 51341badb623927f2a358588c725a356fc77dbe7 Signed-off-by: Werner Koch --- dirmngr/ks-engine-ldap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dirmngr/ks-engine-ldap.c b/dirmngr/ks-engine-ldap.c index d94bd5e25..ba3313164 100644 --- a/dirmngr/ks-engine-ldap.c +++ b/dirmngr/ks-engine-ldap.c @@ -1995,7 +1995,7 @@ ks_ldap_put (ctrl_t ctrl, parsed_uri_t uri, *newline = '\0'; - extract_attributes (&modlist, info); + extract_attributes (&addlist, info); infolen = infolen - ((uintptr_t) newline - (uintptr_t) info + 1); info = newline + 1; @@ -2042,7 +2042,7 @@ ks_ldap_put (ctrl_t ctrl, parsed_uri_t uri, char **certid; char *dn; - certid = modlist_lookup (modlist, "pgpCertID"); + certid = modlist_lookup (addlist, "pgpCertID"); if (/* We should have a value. */ ! certid /* Exactly one. */