summaryrefslogtreecommitdiff
path: root/source3
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2007-04-14 06:40:47 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:19:20 -0500
commita633b42592080982b38f5e3cde8d32bf2fd80e7e (patch)
tree59cef09736a7501274009f917d9252b713bcbb1a /source3
parent282018a366dec480597c08df310a7826c079b692 (diff)
downloadsamba-a633b42592080982b38f5e3cde8d32bf2fd80e7e.tar.gz
samba-a633b42592080982b38f5e3cde8d32bf2fd80e7e.tar.bz2
samba-a633b42592080982b38f5e3cde8d32bf2fd80e7e.zip
r22213: We can't use become_root() here, as it does DEBUG()
itself. become_root_uid_only did not :-) Revert 21868, we need to find a better way. Volker (This used to be commit 629f966714c7a8d96b06027d514b86cde81b69b9)
Diffstat (limited to 'source3')
-rw-r--r--source3/lib/debug.c13
-rw-r--r--source3/smbd/process.c7
2 files changed, 15 insertions, 5 deletions
diff --git a/source3/lib/debug.c b/source3/lib/debug.c
index 138c52cdce..62fda5741c 100644
--- a/source3/lib/debug.c
+++ b/source3/lib/debug.c
@@ -688,15 +688,20 @@ void check_log_size( void )
int maxlog;
SMB_STRUCT_STAT st;
+ /*
+ * We need to be root to check/change log-file, skip this and let the main
+ * loop check do a new check as root.
+ */
+
+ if( geteuid() != 0 )
+ return;
+
if(log_overflow || !need_to_check_log_size() )
return;
maxlog = lp_max_log_size() * 1024;
if( sys_fstat( x_fileno( dbf ), &st ) == 0 && st.st_size > maxlog ) {
-
- become_root();
-
(void)reopen_logs();
if( dbf && get_file_size( debugf ) > maxlog ) {
pstring name;
@@ -709,8 +714,6 @@ void check_log_size( void )
(void)rename(name, debugf);
}
}
-
- unbecome_root();
}
/*
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index c5db007525..6f3ad9884c 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -1406,6 +1406,13 @@ machine %s in domain %s.\n", global_myname(), lp_workgroup()));
update_monitored_printq_cache();
+ /*
+ * Now we are root, check if the log files need pruning.
+ * Force a log file check.
+ */
+ force_check_log_size();
+ check_log_size();
+
/* Send any queued printer notify message to interested smbd's. */
print_notify_send_messages(0);