summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/passdb/login_cache.c13
-rw-r--r--source3/passdb/pdb_ldap.c2
3 files changed, 10 insertions, 8 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 68a3e5cf7b..ad95863d81 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -4410,7 +4410,8 @@ char* get_string_param( const char* param );
bool login_cache_init(void);
bool login_cache_shutdown(void);
bool login_cache_read(struct samu *sampass, struct login_cache *entry);
-bool login_cache_write(const struct samu *sampass, struct login_cache entry);
+bool login_cache_write(const struct samu *sampass,
+ const struct login_cache *entry);
bool login_cache_delentry(const struct samu *sampass);
/* The following definitions come from passdb/lookup_sid.c */
diff --git a/source3/passdb/login_cache.c b/source3/passdb/login_cache.c
index 2f9f000f11..cf6c796321 100644
--- a/source3/passdb/login_cache.c
+++ b/source3/passdb/login_cache.c
@@ -112,13 +112,14 @@ bool login_cache_read(struct samu *sampass, struct login_cache *entry)
return true;
}
-bool login_cache_write(const struct samu *sampass, struct login_cache entry)
+bool login_cache_write(const struct samu *sampass,
+ const struct login_cache *entry)
{
char *keystr;
TDB_DATA databuf;
bool ret;
uint32_t entry_timestamp;
- uint32_t bad_password_time = (uint32_t)entry.bad_password_time;
+ uint32_t bad_password_time = entry->bad_password_time;
if (!login_cache_init())
return False;
@@ -138,8 +139,8 @@ bool login_cache_write(const struct samu *sampass, struct login_cache entry)
databuf.dsize =
tdb_pack(NULL, 0, SAM_CACHE_FORMAT,
entry_timestamp,
- entry.acct_ctrl,
- entry.bad_password_count,
+ entry->acct_ctrl,
+ entry->bad_password_count,
bad_password_time);
databuf.dptr = SMB_MALLOC_ARRAY(uint8, databuf.dsize);
if (!databuf.dptr) {
@@ -149,8 +150,8 @@ bool login_cache_write(const struct samu *sampass, struct login_cache entry)
if (tdb_pack(databuf.dptr, databuf.dsize, SAM_CACHE_FORMAT,
entry_timestamp,
- entry.acct_ctrl,
- entry.bad_password_count,
+ entry->acct_ctrl,
+ entry->bad_password_count,
bad_password_time)
!= databuf.dsize) {
SAFE_FREE(keystr);
diff --git a/source3/passdb/pdb_ldap.c b/source3/passdb/pdb_ldap.c
index b3eb37501c..4ff718ebdb 100644
--- a/source3/passdb/pdb_ldap.c
+++ b/source3/passdb/pdb_ldap.c
@@ -1518,7 +1518,7 @@ static bool init_ldap_from_sam (struct ldapsam_privates *ldap_state,
cache_entry.bad_password_time = badtime;
DEBUG(7, ("Updating bad password count and time in login cache\n"));
- login_cache_write(sampass, cache_entry);
+ login_cache_write(sampass, &cache_entry);
}
}