From: Volker Lendecke Date: Sun, 20 Feb 2011 16:41:22 +0000 (+0100) Subject: s3: Fix error returns in pdb_ads_mod_groupmem X-Git-Tag: tevent-0.9.11~471 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=288b396411bfe8f8eb7353193991a1910c97751e;p=thirdparty%2Fsamba.git s3: Fix error returns in pdb_ads_mod_groupmem --- diff --git a/source3/passdb/pdb_ads.c b/source3/passdb/pdb_ads.c index ad38256abbd..91a981b91f9 100644 --- a/source3/passdb/pdb_ads.c +++ b/source3/passdb/pdb_ads.c @@ -1214,10 +1214,12 @@ static NTSTATUS pdb_ads_mod_groupmem(struct pdb_methods *m, if (rc != TLDAP_SUCCESS) { DEBUG(10, ("ldap_modify failed: %s\n", tldap_errstr(talloc_tos(), state->ld, rc))); - if (rc == TLDAP_TYPE_OR_VALUE_EXISTS) { + if ((mod_op == TLDAP_MOD_ADD) && + (rc == TLDAP_ALREADY_EXISTS)) { return NT_STATUS_MEMBER_IN_GROUP; } - if (rc == TLDAP_NO_SUCH_ATTRIBUTE) { + if ((mod_op == TLDAP_MOD_DELETE) && + (rc == TLDAP_UNWILLING_TO_PERFORM)) { return NT_STATUS_MEMBER_NOT_IN_GROUP; } return NT_STATUS_LDAP(rc);