summaryrefslogtreecommitdiff
path: root/source4/librpc/ndr
diff options
context:
space:
mode:
Diffstat (limited to 'source4/librpc/ndr')
-rw-r--r--source4/librpc/ndr/libndr.h2
-rw-r--r--source4/librpc/ndr/ndr.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/source4/librpc/ndr/libndr.h b/source4/librpc/ndr/libndr.h
index 7070ae80ec..5485c232b4 100644
--- a/source4/librpc/ndr/libndr.h
+++ b/source4/librpc/ndr/libndr.h
@@ -185,7 +185,7 @@ enum ndr_err_code {
} \
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)
diff --git a/source4/librpc/ndr/ndr.c b/source4/librpc/ndr/ndr.c
index 6947cc8ee6..032c743bef 100644
--- a/source4/librpc/ndr/ndr.c
+++ b/source4/librpc/ndr/ndr.c
@@ -436,6 +436,8 @@ static NTSTATUS ndr_pull_subcontext_header(struct ndr_pull *ndr,
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;