diff options
author | Alexander Sulfrian <alex@spline.inf.fu-berlin.de> | 2015-12-15 21:55:39 +0100 |
---|---|---|
committer | test-ldap <test-ldap@vm-accounts.spline.inf.fu-berlin.de> | 2015-12-15 21:55:39 +0100 |
commit | da3b535b70b76b2042dcd85315e1d37e3017388c (patch) | |
tree | d83ef80dac1acee060650338f7501ad3e6ff7649 /service_passwords.c | |
parent | 8530b2beb54e68bb6c9b36fec01dd3898a518183 (diff) | |
download | ldap-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.
Diffstat (limited to 'service_passwords.c')
-rw-r--r-- | service_passwords.c | 12 |
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; } |