none
[MS-DRSR] typo mistake in 4.1.15.3 Server Behavior of the IDL_DRSInterDomainMove Method RRS feed

  • Question

  • Hello,

    In 4.1.15.3 Server Behavior of the IDL_DRSInterDomainMove Method I think there is a typo mistake.

    In the code:

    /* Perform a binary comparison of the OID value from the last
      * prefixTable entry with the schemaInfo attribute on the
      * schema NC.*/
     if lastPrefixTableEntry.oid ≠ SchemaNC()!schemaInfo then
       return ERROR_SCHEMA_MISMATCH
     endif

    There is a mention of an oid property. prefixTable entry doesn't have such property. I think you are talking about the prefix like in 4.1.10.6.1 ProcessGetNCChangesReply

    serverSchemaSignature :=
          copy sourcePrefixTable[lastElement].prefix.length bytes of data 
          from sourcePrefixTable[lastElement].prefix.elements
    clientSchemaSignature := SchemaNC()!schemaInfo
    if clientSchemaSignature ≠ serverSchemaSignature and 
       msgReplyNative.pNC^ ≠ SchemaNC())
    then
       return ERROR_DS_DRA_SCHEMA_MISMATCH
    endif

    regards,

    Vincent


    Thursday, August 31, 2017 5:13 PM

Answers

  • Vincent,

    Thank you for reporting this to us. Your observation appears correct. A document bug has been filed and any related fix will appear in future release of MS-DRSR.

    "5.154 PrefixTableEntry" has a field "OID_t prefix;" and the logic should be similar the one you mentioned in  4.1.10.6.1 ProcessGetNCChangesReply.

    Ref. 5.154 PrefixTableEntry and 5.143 OID_t

    5.154 PrefixTableEntry
    The PrefixTableEntry structure defines a concrete type for mapping a range of ATTRTYP values to and from OIDs. It is a component of the type SCHEMA_PREFIX_TABLE.
     typedef struct {
       unsigned long ndx;
       OID_t prefix;
     } PrefixTableEntry;
    ndx:  The index assigned to the prefix.
    prefix:  An OID or a prefix of an OID.

    5.143 OID_t
    The OID_t structure defines a concrete type for an OID or a prefix of an OID; it is a component of type PrefixTableEntry.
     typedef struct {
       [range(0,10000)] unsigned int length;
       [size_is(length)] BYTE* elements;
     } OID_t;
    length:  The size, in bytes, of the elements array.
    elements:  An array of bytes that constitute an OID or a prefix of an OID.

    Regards,

    Edgar

    • Marked as answer by vletoux2 Thursday, August 31, 2017 7:54 PM
    Thursday, August 31, 2017 7:31 PM
    Moderator