mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
Catch NULL control OID up front.
This commit is contained in:
parent
7c4445aed4
commit
e9ab2f8d06
@ -156,10 +156,13 @@ int get_ctrls(
|
||||
}
|
||||
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, ENTRY, "get_ctrls: conn %lu\n", conn->c_connid, 0, 0 );
|
||||
LDAP_LOG( OPERATION, ENTRY,
|
||||
"get_ctrls: conn %lu\n", conn->c_connid, 0, 0 );
|
||||
#else
|
||||
Debug( LDAP_DEBUG_TRACE, "=> get_ctrls\n", 0, 0, 0 );
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"=> get_ctrls\n", 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
if( op->o_protocol < LDAP_VERSION3 ) {
|
||||
rc = SLAPD_DISCONNECT;
|
||||
errmsg = "controls require LDAPv3";
|
||||
@ -232,11 +235,29 @@ int get_ctrls(
|
||||
Debug( LDAP_DEBUG_TRACE, "=> get_ctrls: get oid failed.\n",
|
||||
0, 0, 0 );
|
||||
#endif
|
||||
|
||||
ldap_controls_free( op->o_ctrls );
|
||||
op->o_ctrls = NULL;
|
||||
rc = SLAPD_DISCONNECT;
|
||||
errmsg = "decoding controls error";
|
||||
goto return_results;
|
||||
|
||||
} else if( c->ldctl_oid == NULL ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, INFO,
|
||||
"get_ctrls: conn %lu got emtpy OID.\n",
|
||||
conn->c_connid, 0, 0 );
|
||||
#else
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"get_ctrls: conn %lu got emtpy OID.\n",
|
||||
conn->c_connid, 0, 0 );
|
||||
#endif
|
||||
|
||||
ldap_controls_free( op->o_ctrls );
|
||||
op->o_ctrls = NULL;
|
||||
rc = LDAP_PROTOCOL_ERROR;
|
||||
errmsg = "OID field is empty";
|
||||
goto return_results;
|
||||
}
|
||||
|
||||
tag = ber_peek_tag( ber, &len );
|
||||
@ -272,13 +293,12 @@ int get_ctrls(
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, INFO, "get_ctrls: conn %lu: "
|
||||
"%s (%scritical): get value failed.\n",
|
||||
conn->c_connid, c->ldctl_oid ? c->ldctl_oid : "(NULL)",
|
||||
conn->c_connid, c->ldctl_oid,
|
||||
c->ldctl_iscritical ? "" : "non" );
|
||||
#else
|
||||
Debug( LDAP_DEBUG_TRACE, "=> get_ctrls: conn %lu: "
|
||||
"%s (%scritical): get value failed.\n",
|
||||
conn->c_connid,
|
||||
c->ldctl_oid ? c->ldctl_oid : "(NULL)",
|
||||
conn->c_connid, c->ldctl_oid,
|
||||
c->ldctl_iscritical ? "" : "non" );
|
||||
#endif
|
||||
ldap_controls_free( op->o_ctrls );
|
||||
@ -292,13 +312,11 @@ int get_ctrls(
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG( OPERATION, INFO,
|
||||
"get_ctrls: conn %lu oid=\"%s\" (%scritical)\n",
|
||||
conn->c_connid, c->ldctl_oid ? c->ldctl_oid : "(NULL)",
|
||||
c->ldctl_iscritical ? "" : "non" );
|
||||
conn->c_connid, c->ldctl_oid, c->ldctl_iscritical ? "" : "non" );
|
||||
#else
|
||||
Debug( LDAP_DEBUG_TRACE, "=> get_ctrls: oid=\"%s\" (%scritical)\n",
|
||||
c->ldctl_oid ? c->ldctl_oid : "(NULL)",
|
||||
c->ldctl_iscritical ? "" : "non",
|
||||
0 );
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"=> get_ctrls: oid=\"%s\" (%scritical)\n",
|
||||
c->ldctl_oid, c->ldctl_iscritical ? "" : "non", 0 );
|
||||
#endif
|
||||
|
||||
sc = find_ctrl( c->ldctl_oid );
|
||||
|
Loading…
Reference in New Issue
Block a user