From b7b8900677fad295a637912a3254e03c0758939e Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Thu, 30 Apr 2009 16:43:41 -0400 Subject: add verboser strerrors if posix_spawn failed * buildrun.cxx (run_make_cmd, kernel_built_uprobes, copy_uprobes_symbols, run_pass, make_typequery_umod): Print strerror after a failed stap_system() if verbose. --- buildrun.cxx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'buildrun.cxx') diff --git a/buildrun.cxx b/buildrun.cxx index 14c6a395..bbef1def 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -63,7 +63,8 @@ run_make_cmd(systemtap_session& s, string& make_cmd) if (s.verbose > 1) clog << "Running " << make_cmd << endl; rc = stap_system (make_cmd.c_str()); - + if (rc && s.verbose > 1) + clog << "Error " << rc << " " << strerror(rc) << endl; return rc; } @@ -232,6 +233,8 @@ kernel_built_uprobes (systemtap_session& s) string grep_cmd = string ("/bin/grep -q unregister_uprobe ") + s.kernel_build_tree + string ("/Module.symvers"); int rc = stap_system (grep_cmd.c_str()); + if (rc && s.verbose > 1) + clog << "Error " << rc << " " << strerror(rc) << endl; return (rc == 0); } @@ -283,6 +286,8 @@ copy_uprobes_symbols (systemtap_session& s) string cp_cmd = string("/bin/cp ") + uprobes_home + string("/Module.symvers ") + s.tmpdir; int rc = stap_system (cp_cmd.c_str()); + if (rc && s.verbose > 1) + clog << "Error " << rc << " " << strerror(rc) << endl; return rc; } @@ -348,6 +353,8 @@ run_pass (systemtap_session& s) if (s.verbose>1) clog << "Running " << staprun_cmd << endl; rc = stap_system (staprun_cmd.c_str ()); + if (rc && s.verbose > 1) + clog << "Error " << rc << " " << strerror(rc) << endl; return rc; } @@ -508,7 +515,10 @@ make_typequery_umod(systemtap_session& s, const string& header, string& name) + name + " -xc /dev/null -include " + header; if (s.verbose < 4) cmd += " >/dev/null 2>&1"; - return stap_system (cmd.c_str()); + int rc = stap_system (cmd.c_str()); + if (rc && s.verbose > 1) + clog << "Error " << rc << " " << strerror(rc) << endl; + return rc; } -- cgit From 2035bcd40b17832439df0a1eb28403b99a71b74f Mon Sep 17 00:00:00 2001 From: Dave Brolley Date: Mon, 4 May 2009 16:05:22 -0400 Subject: Module signing and verification using a separate file for the module signature. --- buildrun.cxx | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'buildrun.cxx') diff --git a/buildrun.cxx b/buildrun.cxx index 14c6a395..31f7ec00 100644 --- a/buildrun.cxx +++ b/buildrun.cxx @@ -10,6 +10,9 @@ #include "buildrun.h" #include "session.h" #include "util.h" +#if HAVE_NSS +#include "modsign.h" +#endif #include #include @@ -218,6 +221,14 @@ compile_pass (systemtap_session& s) rc = run_make_cmd(s, make_cmd); +#if HAVE_NSS + // If a certificate database was specified, then try to sign the module. + // Failure to do so is not a fatal error. If the signature is actually needed, + // staprun will complain at that time. + assert (! s.cert_db_path.empty()); + sign_module (s); +#endif + return rc; } -- cgit