summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2010-02-18 15:13:20 +0100
committerKarolin Seeger <kseeger@samba.org>2010-02-22 15:50:37 +0100
commita3281228f9acfb4565a8ce5b2a952187be891dae (patch)
tree3a86d2009da4276687ef9a7ed88a1538b50cc506
parentdd467c0aefdfc23dcadbf85b1a7aad77c2ecaf86 (diff)
downloadsamba-a3281228f9acfb4565a8ce5b2a952187be891dae.tar.gz
samba-a3281228f9acfb4565a8ce5b2a952187be891dae.tar.xz
samba-a3281228f9acfb4565a8ce5b2a952187be891dae.zip
libndr: fix ndr_size_* calculation with relative reverse buffers
metze (cherry picked from commit 8310f02414efd3b792857ed20c636c4c114e1ba2) (cherry picked from commit 56a6011221aec94b64ac4499b825ff96d1ed22b4)
-rw-r--r--librpc/ndr/ndr.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c
index f1ff5971afc..ab4168a0f94 100644
--- a/librpc/ndr/ndr.c
+++ b/librpc/ndr/ndr.c
@@ -1111,6 +1111,12 @@ _PUBLIC_ enum ndr_err_code ndr_push_relative_ptr2_end(struct ndr_push *ndr, cons
return NDR_ERR_SUCCESS;
}
+ if (ndr->flags & LIBNDR_FLAG_NO_NDR_SIZE) {
+ /* better say more than calculation a too small buffer */
+ NDR_PUSH_ALIGN(ndr, 8);
+ return NDR_ERR_SUCCESS;
+ }
+
if (ndr->relative_end_offset < ndr->offset) {
return ndr_push_error(ndr, NDR_ERR_RELATIVE,
"ndr_push_relative_ptr2_end:"