[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Wed Nov 23 23:44:06 UTC 2016


The branch, master has been updated
       via  b5fe9c6 selftest: Fix timestamps on FreeBSD 11
       via  656f2a9 s3/dump_core: Honour pipe symbol (|) in system-wide core_pattern under linux
      from  530c2c8 ldb: version 1.1.28

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


- Log -----------------------------------------------------------------
commit b5fe9c685fcdf62fb1c42543933d12d018297b04
Author: Volker Lendecke <vl at samba.org>
Date:   Wed Nov 23 13:54:39 2016 +0100

    selftest: Fix timestamps on FreeBSD 11
    
    FreeBSD's date does not print the %, and \? does not catch that
    
    Tested this manually:
    
    $ echo 'time: 2016-11-23 12:52:19.123456Z'| sed 's/\..*NZ$/.000000Z/'
    time: 2016-11-23 12:52:19.123456Z
    $ echo 'time: 2016-11-23 12:52:19.%6NZ'| sed 's/\..*NZ$/.000000Z/'
    time: 2016-11-23 12:52:19.000000Z
    $ echo 'time: 2016-11-23 12:52:19.6NZ'| sed 's/\..*NZ$/.000000Z/'
    time: 2016-11-23 12:52:19.000000Z
    $ echo 'time: 2016-11-23 12:52:19.NZ'| sed 's/\..*NZ$/.000000Z/'
    time: 2016-11-23 12:52:19.000000Z
    $
    
    Signed-off-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Thu Nov 24 00:42:55 CET 2016 on sn-devel-144

commit 656f2a9dcd6822e1e8606a56bf4cd8984ce80f5d
Author: Anoop C S <anoopcs at redhat.com>
Date:   Wed Nov 16 08:55:13 2016 +0000

    s3/dump_core: Honour pipe symbol (|) in system-wide core_pattern under linux
    
    From man core(5):
    
    "Since  kernel  2.6.19, Linux supports an alternate syntax for the
    /proc/sys/kernel/core_pattern file.  If the first character of this
    file is a pipe symbol (|), then the remainder of the line is interpreted
    as a user-space program to be executed."
    
    Discarding this symbol would result in misleading logs for smbd/nmbd/winbindd.
    For example even if core_pattern contains '|', smbd logs would suggest the
    following:
    
    ...
    dumping core in /var/log/samba/cores/smbd
    ...
    
    and coredump may or may not get created at that location depending on which
    helper binary is being used for handling coredumps.
    
    Signed-off-by: Anoop C S <anoopcs at redhat.com>
    Reviewed-by: Michael Adam <obnox at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 source3/lib/dumpcore.c        | 32 ++++++++++++++++++++++++--------
 testprogs/blackbox/subunit.sh |  2 +-
 2 files changed, 25 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/lib/dumpcore.c b/source3/lib/dumpcore.c
index c72aa88..6c305ab 100644
--- a/source3/lib/dumpcore.c
+++ b/source3/lib/dumpcore.c
@@ -37,6 +37,7 @@
 #endif
 
 static char *corepath;
+static bool using_helper_binary = false;
 
 /**
  * Build up the default corepath as "<logbase>/cores/<progname>"
@@ -169,6 +170,12 @@ static char *get_linux_corepath(void)
 		/*
 		 * No absolute path, use the default (cwd)
 		 */
+		if (result[0] == '|') {
+			/*
+			* Core dump handled by helper binaries
+			*/
+			using_helper_binary = true;
+		}
 		TALLOC_FREE(result);
 		return NULL;
 	}
@@ -291,16 +298,25 @@ void dump_core_setup(const char *progname, const char *log_file)
 	}
 
 	if (*corepath != '\0') {
-		/* The chdir might fail if we dump core before we finish
-		 * processing the config file.
+		/*
+		 * Check whether coredump is handled by helper binaries or not.
+		 * If so skip chdir().
 		 */
-		if (chdir(corepath) != 0) {
-			DEBUG(0, ("unable to change to %s\n", corepath));
-			DEBUGADD(0, ("refusing to dump core\n"));
-			exit(1);
-		}
+		if (!using_helper_binary) {
+			/* The chdir might fail if we dump core before we finish
+			 * processing the config file.
+			 */
+			if (chdir(corepath) != 0) {
+				DEBUG(0, ("unable to change to %s\n", corepath));
+				DEBUGADD(0, ("refusing to dump core\n"));
+				exit(1);
+			}
 
-		DEBUG(0,("dumping core in %s\n", corepath));
+			DEBUG(0,("dumping core in %s\n", corepath));
+		} else {
+			DEBUG(0,("coredump is handled by helper binary "
+				 "specified at /proc/sys/kernel/core_pattern"));
+		}
 	}
 
 	umask(~(0700));
diff --git a/testprogs/blackbox/subunit.sh b/testprogs/blackbox/subunit.sh
index 70fe2d7..0791d77 100755
--- a/testprogs/blackbox/subunit.sh
+++ b/testprogs/blackbox/subunit.sh
@@ -22,7 +22,7 @@ timestamp() {
   # mark the start time. With Gnu date, you get nanoseconds from %N
   # (here truncated to microseconds with %6N), but not on BSDs,
   # Solaris, etc, which will apparently leave either %N or N at the end.
-  date -u +'time: %Y-%m-%d %H:%M:%S.%6NZ' | sed 's/%\?NZ$/000000Z/'
+  date -u +'time: %Y-%m-%d %H:%M:%S.%6NZ' | sed 's/\..*NZ$/.000000Z/'
 }
 
 subunit_start_test () {


-- 
Samba Shared Repository



More information about the samba-cvs mailing list