svn commit: samba r21614 - in branches/SAMBA_3_0/source/nsswitch: .

jerry at samba.org jerry at samba.org
Thu Mar 1 03:14:22 GMT 2007


Author: jerry
Date: 2007-03-01 03:14:20 +0000 (Thu, 01 Mar 2007)
New Revision: 21614

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=21614

Log:
The memset() called on aligned memory was causing crashes
on x86_64 Linux boxes.  Since it is not needed, just use malloc()
on Linux.


Modified:
   branches/SAMBA_3_0/source/nsswitch/winbindd_cred_cache.c


Changeset:
Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cred_cache.c
===================================================================
--- branches/SAMBA_3_0/source/nsswitch/winbindd_cred_cache.c	2007-03-01 03:12:16 UTC (rev 21613)
+++ branches/SAMBA_3_0/source/nsswitch/winbindd_cred_cache.c	2007-03-01 03:14:20 UTC (rev 21614)
@@ -494,8 +494,19 @@
 		memcredp->len += strlen(pass)+1;
 	}
 
+#if defined(LINUX)
+	/* aligning the memory on on x86_64 and compiling 
+	   with gcc 4.1 using -O2 causes a segv in the 
+	   next memset()  --jerry */
+	memcredp->nt_hash = SMB_MALLOC_ARRAY(unsigned char, memcredp->len);
+#else
 	/* On non-linux platforms, mlock()'d memory must be aligned */
+	memcredp->nt_hash = SMB_MEMALIGN_ARRAY(unsigned char, 
+					       getpagesize(), memcredp->len);
+#endif
 
+	/* On non-linux platforms, mlock()'d memory must be aligned */
+
 	memcredp->nt_hash = SMB_MEMALIGN_ARRAY(unsigned char, psize, 
 					       memcredp->len);
 	if (!memcredp->nt_hash) {



More information about the samba-cvs mailing list