Skip to content
Snippets Groups Projects
Commit b32d83ad authored by Kurt Zeilenga's avatar Kurt Zeilenga
Browse files

Sync with HEAD

Fix LDAP IMR tags
parent 9f5e9f7f
No related branches found
Tags OPENLDAP_REL_ENG_2_2_18
No related merge requests found
......@@ -3,6 +3,7 @@ OpenLDAP 2.2 Change Log
OpenLDAP 2.2.18 Release
Fixed libldap schema keyword sensitivity (ITS#3334)
Fixed libldap DN filter sensitivity (ITS#3334)
Fixed libldap intermediate response tags
Fixed slapd matching rule name sensitivity (ITS#3334)
Fixed slapd multiple value delete (ITS#3346)
Fixed slapd referral memory leak
......
......@@ -52,10 +52,12 @@ Implement authPassword (RFC 3112)
Add LDIFv2 (XML) support to command line tools
Implement LDAPprep and SASLprep
Implement additional matching rules (RFC 3698)
Add syncrepl "turn" support
Add dumpasn1 logging support
Add tests to test suite
Convert utfconv.txt into man page(s).
Add jail(2) support
Recode linked-list structs to use <ldap_queue.h> macros
Convert utfconv.txt into man page(s).
Update any manual page
......
......@@ -319,6 +319,9 @@ typedef struct ldapcontrol {
#define LDAP_TAG_EXOP_RES_OID ((ber_tag_t) 0x8aU) /* context specific + primitive */
#define LDAP_TAG_EXOP_RES_VALUE ((ber_tag_t) 0x8bU) /* context specific + primitive */
#define LDAP_TAG_IM_RES_OID ((ber_tag_t) 0x80U) /* context specific + primitive */
#define LDAP_TAG_IM_RES_VALUE ((ber_tag_t) 0x81U) /* context specific + primitive */
#define LDAP_TAG_SASL_RES_CREDS ((ber_tag_t) 0x87U) /* context specific + primitive */
/* LDAP Request Messages */
......
......@@ -353,7 +353,13 @@ ldap_parse_intermediate (
tag = ber_peek_tag( ber, &len );
if( tag == LDAP_TAG_EXOP_RES_OID ) {
/*
* NOTE: accept intermediate and extended response tag values
* as older versions of slapd(8) incorrectly used extended
* response tags.
* Should be removed when 2.2 is moved to Historic.
*/
if( tag == LDAP_TAG_IM_RES_OID || tag == LDAP_TAG_EXOP_RES_OID ) {
/* we have a resoid */
if( ber_scanf( ber, "a", &resoid ) == LBER_ERROR ) {
ld->ld_errno = LDAP_DECODING_ERROR;
......@@ -364,7 +370,7 @@ ldap_parse_intermediate (
tag = ber_peek_tag( ber, &len );
}
if( tag == LDAP_TAG_EXOP_RES_VALUE ) {
if( tag == LDAP_TAG_IM_RES_VALUE || tag == LDAP_TAG_EXOP_RES_VALUE ) {
/* we have a resdata */
if( ber_scanf( ber, "O", &resdata ) == LBER_ERROR ) {
ld->ld_errno = LDAP_DECODING_ERROR;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment