From 187f695469071d0550613e037b36170facb85460 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Fri, 18 Feb 2011 09:01:46 -0800 Subject: Fix alignment issues in SPOOLSS "BUFFER" marshalling. Guenther and Metze please check ! Autobuild-User: Jeremy Allison Autobuild-Date: Fri Feb 18 18:49:55 CET 2011 on sn-devel-104 --- pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'pidl') diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm index 075ad8516e..eda583e7a8 100644 --- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm +++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm @@ -1281,12 +1281,19 @@ sub ParseStructPushPrimitives($$$$$) sub ParseStructPushDeferred($$$$) { my ($self, $struct, $ndr, $varname, $env) = @_; + if (defined($struct->{PROPERTIES}{relative_base})) { + $self->pidl("NDR_CHECK(ndr_push_align($ndr, $struct->{ALIGN}));"); + # retrieve the current offset as base for relative pointers # based on the toplevel struct/union $self->pidl("NDR_CHECK(ndr_push_setup_relative_base_offset2($ndr, $varname));"); } $self->ParseElementPush($_, $ndr, $env, 0, 1) foreach (@{$struct->{ELEMENTS}}); + + if (defined($struct->{PROPERTIES}{relative_base})) { + $self->pidl("NDR_CHECK(ndr_push_trailer_align($ndr, $struct->{ALIGN}));"); + } } ##################################################################### -- cgit