summaryrefslogtreecommitdiffstats
path: root/ldap/servers/plugins/statechange
diff options
context:
space:
mode:
authorRich Megginson <rmeggins@redhat.com>2007-10-19 15:36:01 +0000
committerRich Megginson <rmeggins@redhat.com>2007-10-19 15:36:01 +0000
commit84adaec98d576be54fdbe510a0863f0f1e9be89e (patch)
tree55a1e0d4dd1b151329d906abb4385241936b04e9 /ldap/servers/plugins/statechange
parentf1a636b3c5074b4a6ea64f75cd2dc21a6167941d (diff)
downloadds-84adaec98d576be54fdbe510a0863f0f1e9be89e.tar.gz
ds-84adaec98d576be54fdbe510a0863f0f1e9be89e.tar.xz
ds-84adaec98d576be54fdbe510a0863f0f1e9be89e.zip
Resolves: bug 297221
Description: rhds71 Malformed Dynamic Authorization Group makes Directory Server Crash Reviewed by: supplemental Fix Description: In some cases, it is ok if the filter is NULL. So just allow NULL in those cases. slapi_str2filter must take either NULL or a writable string, so make sure we pass those in correctly.
Diffstat (limited to 'ldap/servers/plugins/statechange')
-rw-r--r--ldap/servers/plugins/statechange/statechange.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ldap/servers/plugins/statechange/statechange.c b/ldap/servers/plugins/statechange/statechange.c
index e2e1ca50..89809de3 100644
--- a/ldap/servers/plugins/statechange/statechange.c
+++ b/ldap/servers/plugins/statechange/statechange.c
@@ -331,7 +331,8 @@ static int _statechange_register(char *caller_id, char *dn, char *filter, void *
item->dn = 0;
item->filter = slapi_ch_strdup(filter);
item->caller_data = caller_data;
- if (NULL == (item->realfilter = slapi_str2filter(writable_filter))) {
+ if (writable_filter &&
+ (NULL == (item->realfilter = slapi_str2filter(writable_filter)))) {
slapi_log_error(SLAPI_LOG_FATAL, SCN_PLUGIN_SUBSYSTEM,
"Error: invalid filter in statechange entry [%s]: [%s]\n",
dn, filter);
@@ -341,6 +342,8 @@ static int _statechange_register(char *caller_id, char *dn, char *filter, void *
slapi_ch_free_string(&writable_filter);
slapi_ch_free((void **)&item);
return -1;
+ } else if (!writable_filter) {
+ item->realfilter = NULL;
}
item->func = func;