From: Kurt Zeilenga Date: Wed, 20 Oct 2004 22:06:50 +0000 (+0000) Subject: Sync with HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_2_18 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b32d83ad6632a981f182c9bea206ed509c0aac99;p=openldap Sync with HEAD Fix LDAP IMR tags --- diff --git a/CHANGES b/CHANGES index 87b08489b6..9ad190b2da 100644 --- a/CHANGES +++ b/CHANGES @@ -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 diff --git a/doc/devel/todo b/doc/devel/todo index cf9fc68793..0efc98068e 100644 --- a/doc/devel/todo +++ b/doc/devel/todo @@ -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 macros +Convert utfconv.txt into man page(s). Update any manual page diff --git a/include/ldap.h b/include/ldap.h index 9693413ea8..cbebad32d2 100644 --- a/include/ldap.h +++ b/include/ldap.h @@ -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 */ diff --git a/libraries/libldap/extended.c b/libraries/libldap/extended.c index 0fb11184ad..d2cf95ef84 100644 --- a/libraries/libldap/extended.c +++ b/libraries/libldap/extended.c @@ -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;