summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Sulfrian <alex@spline.inf.fu-berlin.de>2015-12-15 21:55:39 +0100
committertest-ldap <test-ldap@vm-accounts.spline.inf.fu-berlin.de>2015-12-15 21:55:39 +0100
commitda3b535b70b76b2042dcd85315e1d37e3017388c (patch)
treed83ef80dac1acee060650338f7501ad3e6ff7649
parent8530b2beb54e68bb6c9b36fec01dd3898a518183 (diff)
downloadldap-plugin-da3b535b70b76b2042dcd85315e1d37e3017388c.tar.gz
ldap-plugin-da3b535b70b76b2042dcd85315e1d37e3017388c.tar.bz2
ldap-plugin-da3b535b70b76b2042dcd85315e1d37e3017388c.zip
Do not generate parent_dn inside dn_contains_uid
The function could be used in more cases, if it checks if the supplied DN contains a uid and does not generate the parent_dn. The parent_dn is generated before calling the function.
-rw-r--r--service_passwords.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/service_passwords.c b/service_passwords.c
index 5cb9924..82dc190 100644
--- a/service_passwords.c
+++ b/service_passwords.c
@@ -60,9 +60,8 @@ static int get_entry(const char *dn, char **attrs, Slapi_Entry **entry)
}
/* Check if the parent entry contains a uid attribute. */
-static int parent_dn_contains_uid(char *dn)
+static int dn_contains_uid(const char *dn)
{
- char *parent_dn;
char *attrs[] = { "uid", NULL };
Slapi_Entry *entry = NULL;
Slapi_Attr *attr = NULL;
@@ -70,9 +69,7 @@ static int parent_dn_contains_uid(char *dn)
int rc = 0;
- parent_dn = slapi_dn_parent(dn);
-
- rc |= get_entry(parent_dn, attrs, &entry);
+ rc |= get_entry(dn, attrs, &entry);
if (rc != 0 || entry == NULL) {
/* parent_dn not found */
rc = 1;
@@ -180,6 +177,8 @@ static int pre_bind(Slapi_PBlock *pb)
int opId;
long msgId;
+ char *parent_dn;
+
int rc = 0;
char fn[] = "pre_bind in service_passwords plug-in";
@@ -219,7 +218,8 @@ static int pre_bind(Slapi_PBlock *pb)
return 0;
}
- if (parent_dn_contains_uid(dn) != 0) {
+ parent_dn = slapi_dn_parent(dn);
+ if (dn_contains_uid(parent_dn) != 0) {
/* parent_dn is not an user, so we ignore this bind request. */
return 0;
}