none
[MS-DRSR] incorrect description of the parameter pextClient of the function IDL_DRSBind RRS feed

  • Question

  • Hi,

    IDL_DRSBind is defined as:

    ULONG IDL_DRSBind( [in] handle_t rpc_handle, [in, unique] UUID* puuidClientDsa, [in, unique] DRS_EXTENSIONS* pextClient, [out] DRS_EXTENSIONS** ppextServer, [out, ref] DRS_HANDLE* phDrs );

    The problem is that the pextClient structure is not a DRS_EXTENSIONS structure but a DRS_EXTENSIONS_INT.

    The problem is present on the page IDL_DRSBind  and in the IDL definition.

    As a consequence, the IDL file is incorrect (the DRS_EXTENSIONS_INT is not included in the IDL file).

    regards,

    Vincent LE TOUX

    Sunday, August 2, 2015 6:00 PM

Answers

  • Vincent,

    After source code review, I confirm that the IDL_DRSBind is correct as documented in the IDL. The pextClient parameter of IDL_DRSBind (Opnum 0) is effectively of type DRS_EXTENSIONS* as specified in the document.

    Thanks,

    Edgar
    Thursday, August 6, 2015 7:35 PM
    Moderator
  • Vincent,

    Agreed that DRS_EXTENSIONS_INT is the data structure described by the DRS_EXTENSIONS byte array. However, for RPC, this is marshalled as a byte array. This abstract definition separates the structure layout from the IDL.

    DRS_EXTENSIONS_INT is described in the document and processing rules are specified for the server and client. The structure itself does not need to be defined in the IDL.

    Another example is the byte array in DRS_SecBuffer of DRS_SecBufferDesc. Here the byte array is GSS Kerberos token and does not need to be defined in the IDL.

    Thanks,

    Edgar

    Thursday, August 13, 2015 4:02 PM
    Moderator

All replies

  • Hi Vincent,

    Thank you for this question. I will review this and follow-up soon.

    Thanks,

    Edgar

    Sunday, August 2, 2015 9:38 PM
    Moderator
  • Vincent,

    After source code review, I confirm that the IDL_DRSBind is correct as documented in the IDL. The pextClient parameter of IDL_DRSBind (Opnum 0) is effectively of type DRS_EXTENSIONS* as specified in the document.

    Thanks,

    Edgar
    Thursday, August 6, 2015 7:35 PM
    Moderator
  • Hi,

    Your answer is technically correct but you didn't get the point.

    Where is the structure DRS_EXTENSIONS_INT in the IDL ?

    DRS_EXTENSIONS embeds DRS_EXTENSIONS_INT but DRS_EXTENSIONS_INT is never mentioned in the IDL.

    regards,

    Vincent

    Thursday, August 6, 2015 10:00 PM
  • Vincent,

    Agreed that DRS_EXTENSIONS_INT is the data structure described by the DRS_EXTENSIONS byte array. However, for RPC, this is marshalled as a byte array. This abstract definition separates the structure layout from the IDL.

    DRS_EXTENSIONS_INT is described in the document and processing rules are specified for the server and client. The structure itself does not need to be defined in the IDL.

    Another example is the byte array in DRS_SecBuffer of DRS_SecBufferDesc. Here the byte array is GSS Kerberos token and does not need to be defined in the IDL.

    Thanks,

    Edgar

    Thursday, August 13, 2015 4:02 PM
    Moderator