diff --git a/CHANGES b/CHANGES index 22c7e46f22de9e69d36b54bf1eb30c30c3919e1e..75a33a21751419c906d7755131b8e207dbbbbcb6 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.25 Engineering + Fixed ldapsearch pagedresults loop (ITS#6755) Fixed tools for incompatible args (ITS#6849) Fixed slapd add objectclasses in order (ITS#6837) Added slapd ordering for uidNumber and gidNumber (ITS#6852) diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c index 4e4f893b8f2632cc210ef4858a213d517fb68f03..1689f61c1582377300a08f54cfdd8811228c6005 100644 --- a/clients/tools/ldapsearch.c +++ b/clients/tools/ldapsearch.c @@ -908,6 +908,15 @@ main( int argc, char **argv ) tool_bind( ld ); getNextPage: + /* fp may have been closed, need to reopen if code jumps + * back here to getNextPage. + */ + if ( !fp && infile ) { + if (( fp = fopen( infile, "r" )) == NULL ) { + perror( infile ); + return EXIT_FAILURE; + } + } save_nctrls = nctrls; i = nctrls; if ( nctrls > 0 @@ -1249,6 +1258,7 @@ getNextPage: } if ( fp != stdin ) { fclose( fp ); + fp = NULL; } }