Commit fe342e2b authored by Quanah Gibson-Mount's avatar Quanah Gibson-Mount
Browse files

ITS#6282

parent b078edc8
OpenLDAP 2.4 Change Log OpenLDAP 2.4 Change Log
OpenLDAP 2.4.19 Engineering OpenLDAP 2.4.19 Engineering
Fixed client tools with null timeouts (ITS#6282)
Fixed slapadd to warn about missing attrs for replicas (ITS#6281) Fixed slapadd to warn about missing attrs for replicas (ITS#6281)
Fixed slapd tools to allow -n for conversion (ITS#6258) Fixed slapd tools to allow -n for conversion (ITS#6258)
Fixed slapd-ldap with null timeouts (ITS#6282)
Fixed slapd-ldif buffer overflow (ITS#6303) Fixed slapd-ldif buffer overflow (ITS#6303)
Fixed slapo-auditlog comments when modifying (ITS#6286) Fixed slapo-auditlog comments when modifying (ITS#6286)
Fixed slapo-dynlist lock leak (ITS#6308) Fixed slapo-dynlist lock leak (ITS#6308)
......
...@@ -1420,11 +1420,17 @@ tool_bind( LDAP *ld ) ...@@ -1420,11 +1420,17 @@ tool_bind( LDAP *ld )
} }
} }
if ( ldap_result( ld, msgid, LDAP_MSG_ALL, NULL, &result ) == -1 ) { rc = ldap_result( ld, msgid, LDAP_MSG_ALL, NULL, &result );
if ( rc == -1 ) {
tool_perror( "ldap_result", -1, NULL, NULL, NULL, NULL ); tool_perror( "ldap_result", -1, NULL, NULL, NULL, NULL );
exit( LDAP_LOCAL_ERROR ); exit( LDAP_LOCAL_ERROR );
} }
if ( rc == 0 ) {
tool_perror( "ldap_result", LDAP_TIMEOUT, NULL, NULL, NULL, NULL );
exit( LDAP_LOCAL_ERROR );
}
rc = ldap_parse_result( ld, result, &err, &matched, &info, &refs, rc = ldap_parse_result( ld, result, &err, &matched, &info, &refs,
&ctrls, 1 ); &ctrls, 1 );
if ( rc != LDAP_SUCCESS ) { if ( rc != LDAP_SUCCESS ) {
......
...@@ -2086,7 +2086,10 @@ ldap_back_exop_whoami( ...@@ -2086,7 +2086,10 @@ ldap_back_exop_whoami(
retry: retry:
rs->sr_err = ldap_whoami( lc->lc_ld, ctrls, NULL, &msgid ); rs->sr_err = ldap_whoami( lc->lc_ld, ctrls, NULL, &msgid );
if ( rs->sr_err == LDAP_SUCCESS ) { if ( rs->sr_err == LDAP_SUCCESS ) {
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, NULL, &res ) == -1 ) { /* by now, make sure no timeout is used (ITS#6282) */
struct timeval tv;
tv.tv_sec = -1;
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, &tv, &res ) == -1 ) {
ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER, ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER,
&rs->sr_err ); &rs->sr_err );
if ( rs->sr_err == LDAP_SERVER_DOWN && doretry ) { if ( rs->sr_err == LDAP_SERVER_DOWN && doretry ) {
......
...@@ -190,7 +190,10 @@ retry: ...@@ -190,7 +190,10 @@ retry:
if ( rc == LDAP_SUCCESS ) { if ( rc == LDAP_SUCCESS ) {
/* TODO: set timeout? */ /* TODO: set timeout? */
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, NULL, &res ) == -1 ) { /* by now, make sure no timeout is used (ITS#6282) */
struct timeval tv;
tv.tv_sec = -1;
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, &tv, &res ) == -1 ) {
ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER, &rc ); ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER, &rc );
rs->sr_err = rc; rs->sr_err = rc;
...@@ -316,7 +319,10 @@ retry: ...@@ -316,7 +319,10 @@ retry:
if ( rc == LDAP_SUCCESS ) { if ( rc == LDAP_SUCCESS ) {
/* TODO: set timeout? */ /* TODO: set timeout? */
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, NULL, &res ) == -1 ) { /* by now, make sure no timeout is used (ITS#6282) */
struct timeval tv;
tv.tv_sec = -1;
if ( ldap_result( lc->lc_ld, msgid, LDAP_MSG_ALL, &tv, &res ) == -1 ) {
ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER, &rc ); ldap_get_option( lc->lc_ld, LDAP_OPT_ERROR_NUMBER, &rc );
rs->sr_err = rc; rs->sr_err = rc;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment