mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-22 07:39:35 -05:00
ITS#4647: error on bad filter patterns
This commit is contained in:
parent
d3e288dffe
commit
e2f4ca480d
2 changed files with 27 additions and 3 deletions
|
|
@ -676,12 +676,32 @@ main( int argc, char **argv )
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( infile != NULL ) {
|
if ( infile != NULL ) {
|
||||||
|
int percent = 0;
|
||||||
|
|
||||||
if ( infile[0] == '-' && infile[1] == '\0' ) {
|
if ( infile[0] == '-' && infile[1] == '\0' ) {
|
||||||
fp = stdin;
|
fp = stdin;
|
||||||
} else if (( fp = fopen( infile, "r" )) == NULL ) {
|
} else if (( fp = fopen( infile, "r" )) == NULL ) {
|
||||||
perror( infile );
|
perror( infile );
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for( i=0 ; filtpattern[i] ; i++ ) {
|
||||||
|
if( filtpattern[i] == '%' ) {
|
||||||
|
if( percent ) {
|
||||||
|
fprintf( stderr, _("Bad filter pattern \"%s\"\n"),
|
||||||
|
filtpattern );
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
percent++;
|
||||||
|
|
||||||
|
if( filtpattern[i+1] != 's' ) {
|
||||||
|
fprintf( stderr, _("Bad filter pattern \"%s\"\n"),
|
||||||
|
filtpattern );
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( tmpdir == NULL ) {
|
if ( tmpdir == NULL ) {
|
||||||
|
|
|
||||||
|
|
@ -165,9 +165,13 @@ must be compiled with LDAP_DEBUG defined for this option to have any effect.
|
||||||
.BI \-f \ file
|
.BI \-f \ file
|
||||||
Read a series of lines from \fIfile\fP, performing one LDAP search for
|
Read a series of lines from \fIfile\fP, performing one LDAP search for
|
||||||
each line. In this case, the \fIfilter\fP given on the command line
|
each line. In this case, the \fIfilter\fP given on the command line
|
||||||
is treated as a pattern where the first occurrence of \fB%s\fP is
|
is treated as a pattern where the first and only occurrence of \fB%s\fP
|
||||||
replaced with a line from \fIfile\fP. If \fIfile\fP is a single \fI-\fP
|
is replaced with a line from \fIfile\fP. Any other occurence of the
|
||||||
character, then the lines are read from standard input.
|
the \fB%\fP character in the pattern will be regarded as an error.
|
||||||
|
Where it is desired that the search filter include a \fB%\fP character,
|
||||||
|
the character should be encoded as \fB\\25\fP (see RFC 4515).
|
||||||
|
If \fIfile\fP is a single
|
||||||
|
\fI-\fP character, then the lines are read from standard input.
|
||||||
.TP
|
.TP
|
||||||
.B \-x
|
.B \-x
|
||||||
Use simple authentication instead of SASL.
|
Use simple authentication instead of SASL.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue