- fixed unaligned pulls at the end of the packet in the ndr lib
} nbt_rdata_status;
typedef struct {
- nbt_operation operation;
- } nbt_rdata_wack;
+ [flag(NDR_REMAINING)] DATA_BLOB data;
+ } nbt_rdata_data;
typedef [nodiscriminant] union {
[case(NBT_QTYPE_NETBIOS)] nbt_rdata_netbios netbios;
[case(NBT_QTYPE_STATUS)] nbt_rdata_status status;
- [case(NBT_QTYPE_NULL)] nbt_rdata_wack wack;
+ [default] nbt_rdata_data data;
} nbt_rdata;
typedef [flag(LIBNDR_PRINT_ARRAY_HEX)] struct {
} \
ndr->offset = (ndr->offset + (n-1)) & ~(n-1); \
} \
- if (ndr->offset >= ndr->data_size) { \
+ if (ndr->offset > ndr->data_size) { \
return ndr_pull_error(ndr, NDR_ERR_BUFSIZE, "Pull align %u", n); \
} \
} while(0)
size_t sub_size,
struct ndr_pull *ndr2)
{
+ ndr2->flags = ndr->flags;
+
switch (sub_size) {
case 0: {
uint32_t size = ndr->data_size - ndr->offset;