Hello, This patch fixes decoding of the newSuperior attribute of an LDAPv3 modrdn request. The current implementation attempts to decode the attribute as an LDAPDN (Octext String, 0x4), when its definition is actually Context 0 (0x80).
>From the RFC: ModifyDNRequest ::= [APPLICATION 12] SEQUENCE { entry LDAPDN, newrdn RelativeLDAPDN, deleteoldrdn BOOLEAN, newSuperior [0] LDAPDN OPTIONAL } Thanks, -Jason -- Jason Greene <[EMAIL PROTECTED] <[EMAIL PROTECTED]> My computer can beat up your computer. - Karl Lehenbauer
Index: packet-ldap.c =================================================================== RCS file: /cvsroot/ethereal/packet-ldap.c,v retrieving revision 1.48 diff -u -r1.48 packet-ldap.c --- packet-ldap.c 2002/11/12 21:37:22 1.48 +++ packet-ldap.c 2002/11/25 06:17:50 @@ -1231,7 +1231,8 @@ if (a->offset < (int) (start + length)) { /* LDAP V3 Modify DN operation, with newSuperior */ - if (read_string(a, tree, hf_ldap_message_modrdn_superior, 0, 0, ASN1_UNI, ASN1_OTS) != ASN1_ERR_NOERROR) + /* "newSuperior [0] LDAPDN OPTIONAL" (0x80) */ + if (read_string(a, tree, hf_ldap_message_modrdn_superior, 0, 0, ASN1_CTX, 0) != ASN1_ERR_NOERROR) return; } }