[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Regarding get_substring_filter() (ITS#1625)
Full_Name: Tsurng-Chen Chern
Version: 2.1.0alpha
OS: Solaris 2.8
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (216.249.89.106)
There is a problem with the substring filter parsing in
servers/slapd/filter.c. I'm not sure about what's the proper
way to handle get_substring_filter() function. Here is a
possible solution, The problem occurs when you have more
than 1 wildcard characters in the filter such as (cn=*test*01).
--- openldap-2.1.0alpha/servers/slapd/filter.c Sun Jan 13 16:43:19 2002
+++ o210a/servers/slapd/filter.c Mon Mar 4 23:06:40 2002
@@ -594,7 +594,7 @@
if( fstr->bv_val ) {
int i = fstr->bv_len;
filter_escape_value( &value, &escaped );
- fstr->bv_len += escaped.bv_len + 2;
+ fstr->bv_len += escaped.bv_len + 1;
fstr->bv_val = ch_realloc( fstr->bv_val,
fstr->bv_len + 1 );
strcpy( fstr->bv_val+i, "*" );
@@ -622,7 +622,7 @@
if( fstr->bv_val ) {
int i = fstr->bv_len;
filter_escape_value( &value, &escaped );
- fstr->bv_len += escaped.bv_len + 2;
+ fstr->bv_len += escaped.bv_len + 1;
fstr->bv_val = ch_realloc( fstr->bv_val,
fstr->bv_len + 1 );
strcpy( fstr->bv_val+i, "*" );