diff --git a/libraries/libldap/filter.c b/libraries/libldap/filter.c index 261740c09362b217c95e0e2cd413fd2a36ec9056..fbfe90ced66244c177c956d95a5f5bd329090c47 100644 --- a/libraries/libldap/filter.c +++ b/libraries/libldap/filter.c @@ -425,6 +425,10 @@ ldap_pvt_put_filter( BerElement *ber, const char *str_in ) parens--; break; + case '(': + rc = -1; + goto done; + default: Debug( LDAP_DEBUG_TRACE, "put_filter: simple\n", 0, 0, 0 ); @@ -497,9 +501,11 @@ ldap_pvt_put_filter( BerElement *ber, const char *str_in ) str = next; break; } + if ( !parens ) + break; } - rc = parens ? -1 : 0; + rc = ( parens || *str ) ? -1 : 0; done: LDAP_FREE( freeme );