[SCM] Samba Shared Repository - branch v3-6-test updated

Karolin Seeger kseeger at samba.org
Thu May 31 13:01:44 MDT 2012


The branch, v3-6-test has been updated
       via  dea1105 Fix bug #8373 - Can't join XP Pro workstations to 3.6.1 DC.
      from  6797759 Fix bad bugfix for bug #8910 - resolve_ads() code can return zero addresses and miss valid DC IP addresses

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test


- Log -----------------------------------------------------------------
commit dea11050ae2e9b2dd4ceb231760d41b68e11f5fd
Author: Jeremy Allison <jra at samba.org>
Date:   Fri May 25 09:16:50 2012 -0700

    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.
    (cherry picked from commit 035342c11719d1daa647c0b2ae7cec27a969f83a)

-----------------------------------------------------------------------

Summary of changes:
 librpc/ndr/libndr.h |    8 +++++++-
 librpc/ndr/ndr.c    |    8 ++++----
 2 files changed, 11 insertions(+), 5 deletions(-)


Changeset truncated at 500 lines:

diff --git a/librpc/ndr/libndr.h b/librpc/ndr/libndr.h
index f4b7db9..1e40779 100644
--- a/librpc/ndr/libndr.h
+++ b/librpc/ndr/libndr.h
@@ -136,7 +136,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 56d1fab..8b442b6 100644
--- a/librpc/ndr/ndr.c
+++ b/librpc/ndr/ndr.c
@@ -380,11 +380,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;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list