diff options
| author | Rich Megginson <rmeggins@redhat.com> | 2007-10-19 15:36:01 +0000 |
|---|---|---|
| committer | Rich Megginson <rmeggins@redhat.com> | 2007-10-19 15:36:01 +0000 |
| commit | 84adaec98d576be54fdbe510a0863f0f1e9be89e (patch) | |
| tree | 55a1e0d4dd1b151329d906abb4385241936b04e9 /ldap/servers/plugins/statechange | |
| parent | f1a636b3c5074b4a6ea64f75cd2dc21a6167941d (diff) | |
| download | ds-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.c | 5 |
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; |
