32-bit pam_winbind and 64-bit winbindd patch

Gerald (Jerry) Carter jerry at samba.org
Tue Apr 11 22:23:14 GMT 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jeremy,

How do you feel about these changes?  I can get a 32-bit
version of `wbinfo -t` working against a 64-bit winbindd.





cheers, jerry
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFEPCxRIR7qMdg1EfYRAlrwAJ9QL2Cj8WH6S9+HiTpBD4FEQAJ2vACcDX/F
N/3/5XWKcXV5I44Z0wwjzrM=
=GmFm
-----END PGP SIGNATURE-----
-------------- next part --------------
Index: configure.in
===================================================================
--- configure.in	(revision 15036)
+++ configure.in	(working copy)
@@ -914,6 +914,7 @@
  
 AC_CHECK_SIZEOF(int,cross)
 AC_CHECK_SIZEOF(long,cross)
+AC_CHECK_SIZEOF(long long,cross)
 AC_CHECK_SIZEOF(short,cross)
 
 AC_C_CONST
Index: include/includes.h
===================================================================
--- include/includes.h	(revision 15036)
+++ include/includes.h	(working copy)
@@ -643,6 +643,19 @@
 #endif
 
 /*
+ * check for 8 byte long long
+ */
+
+#if !defined(uint64)
+#if (SIZEOF_LONG == 8)
+#define uint64 unsigned long
+#elif (SIZEOF_LONG_LONG == 8)
+#define uint64 unsigned long long
+#endif	/* don't lie.  If we don't have it, then don't use it */
+#endif
+
+
+/*
  * Types for devices, inodes and offsets.
  */
 
Index: nsswitch/winbindd_nss.h
===================================================================
--- nsswitch/winbindd_nss.h	(revision 15036)
+++ nsswitch/winbindd_nss.h	(working copy)
@@ -155,8 +155,8 @@
 	fstring gr_name;
 	fstring gr_passwd;
 	gid_t gr_gid;
-	size_t num_gr_mem;
-	size_t gr_mem_ofs;   /* offset to group membership */
+	uint32 num_gr_mem;
+	uint32 gr_mem_ofs;   /* offset to group membership */
 	char **gr_mem;
 } WINBINDD_GR;
 
@@ -257,8 +257,18 @@
 		} dual_idmapset;
 		BOOL list_all_domains;
 	} data;
-	char *extra_data;
-	size_t extra_len;
+	union {
+		struct {
+#if defined(uint64)
+			uint64 z;
+#else
+			uint32 x;
+			uint32 y;
+#endif
+		} pad;
+		char *data;
+	} extra_data;
+	uint32 extra_len;
 	char null_term;
 };
 
@@ -376,7 +386,17 @@
 
 	/* Variable length return data */
 
-	void *extra_data;               /* getgrnam, getgrgid, getgrent */
+	union {
+		struct {
+#if defined(uint64)
+			uint64 z;
+#else
+			uint32 x;
+			uint32 y;
+#endif
+		} pad;
+		void *data;
+	} extra_data;
 };
 
 struct WINBINDD_CCACHE_ENTRY {


More information about the samba-technical mailing list