struct timeval *timeout,
int sizelimit )
{
- char filter[ BUFSIZ ];
+ char *filter;
int rc;
int nresponses;
int nentries;
ber_int_t msgid;
if( filtpatt != NULL ) {
+ filter = malloc( strlen( filtpatt ) + strlen( value ) );
+ if( filter == NULL ) {
+ perror( "malloc" );
+ return EXIT_FAILURE;
+ }
+
sprintf( filter, filtpatt, value );
if ( verbose ) {
}
} else {
- sprintf( filter, "%s", value );
+ filter = value;
}
if ( not ) {
rc = ldap_search_ext( ld, base, scope, filter, attrs, attrsonly,
sctrls, cctrls, timeout, sizelimit, &msgid );
+ if ( filtpatt != NULL ) {
+ free( filter );
+ }
+
if( rc != LDAP_SUCCESS ) {
fprintf( stderr, "%s: ldap_search_ext: %s (%d)\n",
prog, ldap_err2string( rc ), rc );