diff options
author | Stefan Metzmacher <metze@samba.org> | 2010-02-18 15:13:20 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2010-02-22 15:50:37 +0100 |
commit | a3281228f9acfb4565a8ce5b2a952187be891dae (patch) | |
tree | 3a86d2009da4276687ef9a7ed88a1538b50cc506 | |
parent | dd467c0aefdfc23dcadbf85b1a7aad77c2ecaf86 (diff) | |
download | samba-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.c | 6 |
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:" |