[SCM] Samba Shared Repository - branch master updated

Volker Lendecke vlendec at samba.org
Wed Jun 9 02:27:35 MDT 2010


The branch, master has been updated
       via  1fd15dc... s3: Fix bug 7253
      from  34a8324... Fix a valgrind error found by SMB2-COMPOUND test.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1fd15dcb7c31f18036ce15cb504ae2d4a9122629
Author: Volker Lendecke <vl at samba.org>
Date:   Tue Mar 16 21:03:34 2010 +0100

    s3: Fix bug 7253
    
    acct_ctrl is 32 bit in LOGIN_CACHE, but "w" as a format specifier for
    tdb_unpack only writes 16 bits. Okay on x86, not okay on Solaris.
    
    Thanks to Vladimir.Marek at Sun.COM!
    
    Volker

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

Summary of changes:
 source3/passdb/login_cache.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/login_cache.c b/source3/passdb/login_cache.c
index cf6c796..eba83ea 100644
--- a/source3/passdb/login_cache.c
+++ b/source3/passdb/login_cache.c
@@ -68,6 +68,7 @@ bool login_cache_read(struct samu *sampass, struct login_cache *entry)
 	char *keystr;
 	TDB_DATA databuf;
 	uint32_t entry_timestamp = 0, bad_password_time = 0;
+	uint16_t acct_ctrl;
 
 	if (!login_cache_init()) {
 		return false;
@@ -92,7 +93,7 @@ bool login_cache_read(struct samu *sampass, struct login_cache *entry)
 
 	if (tdb_unpack (databuf.dptr, databuf.dsize, SAM_CACHE_FORMAT,
 			&entry_timestamp,
-			&entry->acct_ctrl,
+			&acct_ctrl,
 			&entry->bad_password_count,
 			&bad_password_time) == -1) {
 		DEBUG(7, ("No cache entry found\n"));
@@ -100,6 +101,12 @@ bool login_cache_read(struct samu *sampass, struct login_cache *entry)
 		return false;
 	}
 
+	/*
+	 * Deal with 32-bit acct_ctrl. In the tdb we only store 16-bit
+	 * ("w" in SAM_CACHE_FORMAT). Fixes bug 7253.
+	 */
+	entry->acct_ctrl = acct_ctrl;
+
 	/* Deal with possible 64-bit time_t. */
 	entry->entry_timestamp = (time_t)entry_timestamp;
 	entry->bad_password_time = (time_t)bad_password_time;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list