debug: Set close-on-exec for the main log file FD
authorAndrew Bartlett <abartlet@samba.org>
Mon, 16 Feb 2015 02:59:11 +0000 (15:59 +1300)
committerKarolin Seeger <kseeger@samba.org>
Sun, 1 Mar 2015 20:29:09 +0000 (21:29 +0100)
This does not change the properties of dup2() of the fd as STDERR, however this is closed
before we start smbd or winbindd as child processes.

This is needed otherwise the logfile remains open in the child process, and
logfile rotation can mean this old log remains on disk indefinatly.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11100
Pair-programmed-with: Garming Sam <garming@catalyst.net.nz>
Signed-off-by: Garming Sam <garming@catalyst.net.nz>
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Mon Feb 16 11:42:47 CET 2015 on sn-devel-104

(cherry picked from commit 1d95b0afc3547a91f8558873ce58652c271ed9eb)

lib/util/debug.c
lib/util/wscript_build

index 00595957aa6f3f299e3d34e493d0536f603e9023..0c5e9729a0d8b32e93e1724fb3d1a0e4123e4f38 100644 (file)
@@ -604,6 +604,7 @@ bool reopen_logs_internal(void)
                log_overflow = false;
                ret = false;
        } else {
+               smb_set_close_on_exec(new_fd);
                old_fd = state.fd;
                state.fd = new_fd;
                debug_close_fd(old_fd);
@@ -737,6 +738,7 @@ void check_log_size( void )
                 */
                int fd = open( "/dev/console", O_WRONLY, 0);
                if (fd != -1) {
+                       smb_set_close_on_exec(fd);
                        state.fd = fd;
                        DEBUG(0,("check_log_size: open of debug file %s failed - using console.\n",
                                        state.debugf ));
@@ -793,6 +795,7 @@ static int Debug1(const char *msg)
                        if(fd == -1) {
                                goto done;
                        }
+                       smb_set_close_on_exec(fd);
                        state.fd = fd;
                }
        }
index cd23231f3cc23688507b89bbe463766f49fc5ad8..5db7e35a7296db50c402b3f59846a99a24fe5be8 100755 (executable)
@@ -22,7 +22,7 @@ bld.SAMBA_SUBSYSTEM('close-low-fd',
 
 bld.SAMBA_LIBRARY('samba-debug',
                   source='debug.c',
-                  deps='replace time-basic close-low-fd talloc',
+                  deps='replace time-basic close-low-fd talloc socket-blocking',
                   local_include=False,
                   private_library=True)