wrong IDL for DsBind in drsuapi.idl
Stefan (metze) Metzmacher
metze at samba.org
Mon Oct 21 00:31:35 MDT 2013
Hi Matthieu,
> - typedef struct {
> - [flag(NDR_REMAINING)] DATA_BLOB info;
> - } drsuapi_DsBindInfoFallBack;
> -
> typedef [nodiscriminant] union {
> - [case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24;
> - [case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28;
> - [case(48)][subcontext(4)] drsuapi_DsBindInfo48 info48;
> - [default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack;
> + [case(24)][subcontext(0), subcontext_size(24)] drsuapi_DsBindInfo24 info24;
> + [case(28)][subcontext(0), subcontext_size(28)] drsuapi_DsBindInfo28 info28;
> + [case(48)][subcontext(0), subcontext_size(48)] drsuapi_DsBindInfo48 info48;
> } drsuapi_DsBindInfo;
>
> + typedef [flag(NDR_NOALIGN)] struct {
> + [range(1,10000)] uint3264 length;
> + [value(length)] uint32 __ndr_length;
> + [switch_is(length)] drsuapi_DsBindInfo info;
> + } drsuapi_DsBindInfoCtr;
I think we need to keep drsuapi_DsBindInfoFallBack, otherwise we maybe
unable to parse
unknown requests. I think it would be better to use uint3264 length in
drsuapi_DsBindInfoCtr
and add nopull,nopush to drsuapi_DsBindInfo and fix up the code there.
metze
More information about the samba-technical
mailing list