diff options
author | Jeremy Allison <jra@samba.org> | 2012-05-25 09:16:50 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2012-05-25 09:16:50 -0700 |
commit | 035342c11719d1daa647c0b2ae7cec27a969f83a (patch) | |
tree | ba5ead9220adf3999d1dffb08f0a146d8476a4f3 /librpc/ndr/ndr.c | |
parent | e17fa58d6ee8bf190adba25462d9d97b26ca2c8f (diff) | |
download | samba-035342c11719d1daa647c0b2ae7cec27a969f83a.tar.gz samba-035342c11719d1daa647c0b2ae7cec27a969f83a.tar.bz2 samba-035342c11719d1daa647c0b2ae7cec27a969f83a.zip |
Fix bug #8373 - Can't join XP Pro workstations to 3.6.1 DC.
Treat LIBNDR_FLAG_NOALIGN and LIBNDR_FLAG_REMAINING the same as the
other align flags - make them mutually exclusive.
Combined work from Metze, Günther and Jeremy.
Diffstat (limited to 'librpc/ndr/ndr.c')
-rw-r--r-- | librpc/ndr/ndr.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c index 2279d1c1c3..b77bfae36b 100644 --- a/librpc/ndr/ndr.c +++ b/librpc/ndr/ndr.c @@ -378,11 +378,11 @@ _PUBLIC_ void ndr_set_flags(uint32_t *pflags, uint32_t new_flags) (*pflags) &= ~LIBNDR_FLAG_LITTLE_ENDIAN; (*pflags) &= ~LIBNDR_FLAG_NDR64; } - if (new_flags & LIBNDR_FLAG_REMAINING) { - (*pflags) &= ~LIBNDR_ALIGN_FLAGS; - } if (new_flags & LIBNDR_ALIGN_FLAGS) { - (*pflags) &= ~LIBNDR_FLAG_REMAINING; + /* Ensure we only have the passed-in + align flag set in the new_flags, + remove any old align flag. */ + (*pflags) &= ~LIBNDR_ALIGN_FLAGS; } if (new_flags & LIBNDR_FLAG_NO_RELATIVE_REVERSE) { (*pflags) &= ~LIBNDR_FLAG_RELATIVE_REVERSE; |