summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/auth/auth_domain.c3
-rw-r--r--source3/auth/auth_util.c8
-rw-r--r--source3/passdb/secrets.c1
-rw-r--r--source3/smbd/notify_kernel.c2
-rw-r--r--source3/smbd/oplock_linux.c2
5 files changed, 11 insertions, 5 deletions
diff --git a/source3/auth/auth_domain.c b/source3/auth/auth_domain.c
index 79cf5b156d..b3f50072bc 100644
--- a/source3/auth/auth_domain.c
+++ b/source3/auth/auth_domain.c
@@ -432,7 +432,8 @@ static NTSTATUS check_ntdomain_security(const struct auth_context *auth_context,
/* Test if machine password has expired and needs to be changed */
if (lp_machine_password_timeout()) {
- if (time(NULL) > (last_change_time +
+ if (last_change_time > 0 &&
+ time(NULL) > (last_change_time +
lp_machine_password_timeout())) {
global_machine_password_needs_changing = True;
}
diff --git a/source3/auth/auth_util.c b/source3/auth/auth_util.c
index 0a27e6176d..5fdfd0694a 100644
--- a/source3/auth/auth_util.c
+++ b/source3/auth/auth_util.c
@@ -475,7 +475,7 @@ BOOL make_user_info_guest(auth_usersupplied_info **user_info)
void debug_nt_user_token(int dbg_class, int dbg_lev, NT_USER_TOKEN *token)
{
fstring sid_str;
- int i;
+ size_t i;
if (!token) {
DEBUGC(dbg_class, dbg_lev, ("NT user token: (NULL)\n"));
@@ -564,7 +564,7 @@ static NTSTATUS create_nt_user_token(const DOM_SID *user_sid, const DOM_SID *gro
sid_ndx = 5; /* next available spot */
for (i = 0; i < n_groupSIDs; i++) {
- int check_sid_idx;
+ size_t check_sid_idx;
for (check_sid_idx = 1; check_sid_idx < ptoken->num_sids; check_sid_idx++) {
if (sid_equal(&ptoken->user_sids[check_sid_idx],
&groupSIDs[i])) {
@@ -678,7 +678,7 @@ static NTSTATUS get_user_groups_from_local_sam(const DOM_SID *user_sid,
}
if (sys_getgrouplist(usr->pw_name, usr->pw_gid, *unix_groups, &n_unix_groups) == -1) {
- *unix_groups = Realloc(unix_groups, sizeof(gid_t) * n_unix_groups);
+ *unix_groups = Realloc(*unix_groups, sizeof(gid_t) * n_unix_groups);
if (sys_getgrouplist(usr->pw_name, usr->pw_gid, *unix_groups, &n_unix_groups) == -1) {
DEBUG(0, ("get_user_groups_from_local_sam: failed to get the unix group list\n"));
SAFE_FREE(*unix_groups);
@@ -867,7 +867,7 @@ NTSTATUS make_server_info_info3(TALLOC_CTX *mem_ctx,
NT_USER_TOKEN *token;
DOM_SID *all_group_SIDs;
- int i;
+ size_t i;
/*
Here is where we should check the list of
diff --git a/source3/passdb/secrets.c b/source3/passdb/secrets.c
index d30b13c3b6..5ba9f1dc1e 100644
--- a/source3/passdb/secrets.c
+++ b/source3/passdb/secrets.c
@@ -240,6 +240,7 @@ BOOL secrets_fetch_trust_account_password(const char *domain, uint8 ret_pwd[16],
DEBUG(4,("Using ADS machine password\n"));
E_md4hash(plaintext, ret_pwd);
SAFE_FREE(plaintext);
+ pass_last_set_time = 0;
return True;
}
diff --git a/source3/smbd/notify_kernel.c b/source3/smbd/notify_kernel.c
index df553721ef..8b7ff21ecb 100644
--- a/source3/smbd/notify_kernel.c
+++ b/source3/smbd/notify_kernel.c
@@ -215,6 +215,8 @@ struct cnotify_fns *kernel_notify_init(void)
static struct cnotify_fns cnotify;
struct sigaction act;
+ ZERO_STRUCT(act);
+
act.sa_handler = NULL;
act.sa_sigaction = signal_handler;
act.sa_flags = SA_SIGINFO;
diff --git a/source3/smbd/oplock_linux.c b/source3/smbd/oplock_linux.c
index 85f89c12a0..deed0c5107 100644
--- a/source3/smbd/oplock_linux.c
+++ b/source3/smbd/oplock_linux.c
@@ -279,6 +279,8 @@ struct kernel_oplocks *linux_init_kernel_oplocks(void)
return NULL;
}
+ ZERO_STRUCT(act);
+
act.sa_handler = NULL;
act.sa_sigaction = signal_handler;
act.sa_flags = SA_SIGINFO;