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;
   }
 }

Reply via email to