Author: metze Date: 2005-09-10 08:46:28 +0000 (Sat, 10 Sep 2005) New Revision: 10141
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10141 Log: if some of the LIBNDR_ALIGN_* flags and LIBNDR_FLAG_REMAINING are set, ndr_pull_data_blob() doesn't work correct. so make them exclute each other. jelmer, tridge: does that look correct? it fixes a problem, abartlet had with krb5pac.idl, where the align flags are inherited from the parent, and we want to get the [flag(NDR_REMAINING)] DATA_BLOB signature; metze Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr.c Changeset: Modified: branches/SAMBA_4_0/source/librpc/ndr/ndr.c =================================================================== --- branches/SAMBA_4_0/source/librpc/ndr/ndr.c 2005-09-10 08:41:57 UTC (rev 10140) +++ branches/SAMBA_4_0/source/librpc/ndr/ndr.c 2005-09-10 08:46:28 UTC (rev 10141) @@ -246,6 +246,12 @@ if (new_flags & LIBNDR_FLAG_BIGENDIAN) { (*pflags) &= ~LIBNDR_FLAG_LITTLE_ENDIAN; } + if (new_flags & LIBNDR_FLAG_REMAINING) { + (*pflags) &= ~LIBNDR_ALIGN_FLAGS; + } + if (new_flags & LIBNDR_ALIGN_FLAGS) { + (*pflags) &= ~LIBNDR_FLAG_REMAINING; + } (*pflags) |= new_flags; }
