]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/filter.c
fix non-printable flag detection; improve dn test (passes all but last in http:/...
[openldap] / libraries / libldap / filter.c
index 8c0531cd9af9da3d2d42dd3845eba23457fa5501..60fd907975a4d6ef06dd290029ae03301cd29dd4 100644 (file)
@@ -1,6 +1,6 @@
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /*  Portions
@@ -181,6 +181,10 @@ ldap_pvt_find_wildcard( const char *s )
                case '*':       /* found wildcard */
                        return (char *) s;
 
+               case '(':
+               case ')':
+                       return NULL;
+
                case '\\':
                        if( s[1] == '\0' ) return NULL;
 
@@ -215,6 +219,11 @@ ldap_pvt_filter_value_unescape( char *fval )
 
        for( r=v=0; fval[v] != '\0'; v++ ) {
                switch( fval[v] ) {
+               case '(':
+               case ')':
+               case '*':
+                       return -1;
+
                case '\\':
                        /* escape */
                        v++;
@@ -475,7 +484,7 @@ ldap_int_put_filter( BerElement *ber, const char *str_in )
        rc = parens ? -1 : 0;
 
 done:
-       free( freeme );
+       LDAP_FREE( freeme );
        return rc;
 }