none
Errors in [MS-DRSR]: Directory Replication Service (DRS) Remote Protocol Specification RRS feed

  • Question

  • Hello,

    This post concerns the MS-DRSR document.
    There are several important errors in 4.1.10.6.15 about the DecompressWin2k3() function.

    Let me explain :
    4.1.10.6.15 . DecompressWin2k3 (and correction)

    while (outputIndex < = outputSize)
    should be:
    while (outputIndex < outputSize)
    if (indicatorBit = 0) then
    indicatorBit := copy inputBuffer[inputIndex] as 32-bit integer in
    little-endian format

    should be:
    indicator := copy inputBuffer[inputIndex] as 32-bit integer in
    little-endian format

    inputIndex := inputIndex + 4
    indicatorBit := 32
    endif

    indicatorBit := indicatorBit - 1

    //* check whether the bit specified by indicatorBit is set or not
    //* set in indicator. For example, if indicatorBit has value 4
    //* check whether the 4th bit of the value in indicator is set

    if indicatorBit bit in indicator is not set then
    inputBuffer[inputIndex] := outputBuffer[outputIndex]
    should be:
    outputBuffer[outputIndex] := inputBuffer[inputIndex]
    inputIndex := inputIndex + 1
    outputIndex := outputIndex + 1
    else
    length := copy inputBuffer[inputIndex] as 16-bit integer in
    little-endian format
    inputIndex := inputIndex + 2
    offset := length /8
    length := length mod 8

    if (length = 7) then

    if (nibbleIndex = 0) then
    nibbleIndex := inputIndex
    length := inputBuffer[inputIndex] mod 16
    inputIndex := inputIndex + 1
    else
    length := inputBuffer[inputIndex] / 16
    should be:
    length := inputBuffer[nibbleIndex ] / 16
    nibbleIndex := 0
    endif

    if (length = 15) then

    length := inputBuffer[inputIndex]
    inputIndex := inputIndex + 1

    if (length = 255) then
    length := copy inputBuffer[inputIndex] as 16-bit integer in little-endian format
    inputIndex := inputIndex + 2
    length := length - (15 + 7)
    endif
    length := length + 15
    endif

    length := length + 7

    endif

    length := length + 3

    while (not length = 0)
    should be:
    while (length != 0)
    outputBuffer[outputIndex] := outputBuffer[outputIndex - offset - 1]
    outputIndex := outputIndex + 1
    length := length - 1
    endwhile
    endif

    endwhile

    return

    Cheers,
    Wednesday, April 9, 2008 12:52 PM

Answers

  • Hi Matthieu,

     

    Thanks for brining the issue with the pseudo code in the [MS-DRSR] protocol to our attention. We have confirmed the discrepancy you reported in the current documentation and have created a Technical Documentation Issue (TDI) to update the documentation. The team owning the particular specification will review the TDI and update the specification as appropriate and make the updates available in a future release of the specification.

     

    Will Gregg - MSFT

    Wednesday, April 9, 2008 2:22 PM

All replies

  • Hi Matthieu,

     

    Thanks for brining the issue with the pseudo code in the [MS-DRSR] protocol to our attention. We have confirmed the discrepancy you reported in the current documentation and have created a Technical Documentation Issue (TDI) to update the documentation. The team owning the particular specification will review the TDI and update the specification as appropriate and make the updates available in a future release of the specification.

     

    Will Gregg - MSFT

    Wednesday, April 9, 2008 2:22 PM
  • It's me again.

    Documentation says:

    MSZIP Compression Algorithm: A compression algorithm specified in [RFC1591] that is used between Windows 2000 DCs.

    should be

    MSZIP Compression Algorithm: A compression algorithm specified in [RFC1951] that is used between Windows 2000 DCs.


    Tuesday, April 15, 2008 3:24 PM
  • Hi Matthieu,

     

    Thanks for bringing the issue with the reference to [RFC1951] in the Glossary section: 1.1.2 of the [MS-DRSR] protocol to our attention. We have confirmed the discrepancy you reported in the current documentation and have created a Technical Documentation Issue (TDI) to update the documentation. The team owning the particular specification will review the TDI and update the specification as appropriate and make the updates available in a future release of the specification.

     

    Will Gregg - MSFT

     

    Thursday, April 17, 2008 7:39 PM