From 92e97a68ba7c1c4c5fb7e11ef787843de7b96707 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 25 May 2012 14:29:07 +0200 Subject: [PATCH] TODO qa testing! librpc/ndr: add REMAINING and NOALIGN to ALIGN_FLAGS (bug #8373) Make sure all alignment related flags are mutual exclusive. metze --- librpc/ndr/libndr.h | 8 +++++++- librpc/ndr/ndr.c | 5 +---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h index 37a3145..1bd284f 100644 --- a/librpc/ndr/libndr.h +++ b/librpc/ndr/libndr.h @@ -135,7 +135,13 @@ struct ndr_print { #define LIBNDR_FLAG_ALIGN4 (1<<23) #define LIBNDR_FLAG_ALIGN8 (1<<24) -#define LIBNDR_ALIGN_FLAGS (LIBNDR_FLAG_ALIGN2|LIBNDR_FLAG_ALIGN4|LIBNDR_FLAG_ALIGN8) +#define LIBNDR_ALIGN_FLAGS ( 0 | \ + LIBNDR_FLAG_NOALIGN | \ + LIBNDR_FLAG_REMAINING | \ + LIBNDR_FLAG_ALIGN2 | \ + LIBNDR_FLAG_ALIGN4 | \ + LIBNDR_FLAG_ALIGN8 | \ + 0) #define LIBNDR_PRINT_ARRAY_HEX (1<<25) #define LIBNDR_PRINT_SET_VALUES (1<<26) diff --git a/librpc/ndr/ndr.c b/librpc/ndr/ndr.c index 2279d1c..6cc64ce 100644 --- a/librpc/ndr/ndr.c +++ b/librpc/ndr/ndr.c @@ -378,11 +378,8 @@ _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; + (*pflags) &= ~LIBNDR_ALIGN_FLAGS; } if (new_flags & LIBNDR_FLAG_NO_RELATIVE_REVERSE) { (*pflags) &= ~LIBNDR_FLAG_RELATIVE_REVERSE; -- 1.7.4.1