X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fprocess.c;h=6e9ea8eca0ed8ff3839236bc0f20dc81e91aa149;hb=cc01d0bb79103a01aa0afc3484249fd518b877ea;hp=3504dfb0d95fcd26d9464e1ddc51e2ac42b3287c;hpb=651471fda8df6b3190973a2f048b66448fe90a93;p=sliver-openvswitch.git diff --git a/lib/process.c b/lib/process.c index 3504dfb0d..6e9ea8eca 100644 --- a/lib/process.c +++ b/lib/process.c @@ -32,10 +32,15 @@ #include "poll-loop.h" #include "socket-util.h" #include "util.h" - -#define THIS_MODULE VLM_process #include "vlog.h" +VLOG_DEFINE_THIS_MODULE(process); + +COVERAGE_DEFINE(process_run); +COVERAGE_DEFINE(process_run_capture); +COVERAGE_DEFINE(process_sigchld); +COVERAGE_DEFINE(process_start); + struct process { struct list node; char *name; @@ -55,7 +60,7 @@ static struct list all_processes = LIST_INITIALIZER(&all_processes); static bool sigchld_is_blocked(void); static void block_sigchld(sigset_t *); static void unblock_sigchld(const sigset_t *); -static void sigchld_handler(int signr UNUSED); +static void sigchld_handler(int signr OVS_UNUSED); static bool is_member(int x, const int *array, size_t); /* Initializes the process subsystem (if it is not already initialized). Calls @@ -103,7 +108,7 @@ process_escape_args(char **argv) if (argp != argv) { ds_put_char(&ds, ' '); } - if (arg[strcspn(arg, " \t\r\n\v\\")]) { + if (arg[strcspn(arg, " \t\r\n\v\\\'\"")]) { ds_put_char(&ds, '"'); for (p = arg; *p; p++) { if (*p == '\\' || *p == '\"') { @@ -517,7 +522,7 @@ process_run_capture(char **argv, char **stdout_log, char **stderr_log, block_sigchld(&oldsigs); pid = fork(); if (pid < 0) { - int error = errno; + error = errno; unblock_sigchld(&oldsigs); VLOG_WARN("fork failed: %s", strerror(error)); @@ -585,12 +590,12 @@ process_run_capture(char **argv, char **stdout_log, char **stderr_log, } static void -sigchld_handler(int signr UNUSED) +sigchld_handler(int signr OVS_UNUSED) { struct process *p; COVERAGE_INC(process_sigchld); - LIST_FOR_EACH (p, struct process, node, &all_processes) { + LIST_FOR_EACH (p, node, &all_processes) { if (!p->exited) { int retval, status; do {