From 3943a632fccfb66c72d4f099ece32356c15bd6b3 Mon Sep 17 00:00:00 2001 From: Sam Roberts <vieuxtech@gmail.com> Date: Mon, 3 Dec 2018 09:07:53 -0800 Subject: [PATCH 1/2] src: fix warning for potential snprintf truncation gcc 8+ recognizes that space has not been left for the pid and that the return value of snprintf() isn't checked. Leave a little space for the pid to prevent `-Wformat-truncation`. --- src/util.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/util.cc b/src/util.cc index 9f0b8ebc9d7596..ba30b23770b52e 100644 --- a/src/util.cc +++ b/src/util.cc @@ -116,7 +116,8 @@ std::string GetHumanReadableProcessName() { } void GetHumanReadableProcessName(char (*name)[1024]) { - char title[1024] = "Node.js"; + // Leave room after title for pid, which can be up to 20 digits for 64 bit. + char title[1000] = "Node.js"; uv_get_process_title(title, sizeof(title)); snprintf(*name, sizeof(*name), "%s[%d]", title, uv_os_getpid()); } From e55511ed660e6d259944992eb6e159ae49f40b3b Mon Sep 17 00:00:00 2001 From: Sam Roberts <vieuxtech@gmail.com> Date: Mon, 3 Dec 2018 09:09:59 -0800 Subject: [PATCH 2/2] src: do not alias new and old signal masks In recent gcc, -Wrestrict warns when an argument passed to a restrict-qualified parameter aliases with another argument. --- src/inspector_agent.cc | 4 +++- src/node_watchdog.cc | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/inspector_agent.cc b/src/inspector_agent.cc index 5e53201c42d5c2..21319abca7d1f5 100644 --- a/src/inspector_agent.cc +++ b/src/inspector_agent.cc @@ -110,7 +110,9 @@ static int StartDebugSignalHandler() { sigset_t sigmask; // Mask all signals. sigfillset(&sigmask); - CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &sigmask)); + sigset_t savemask; + CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &savemask)); + sigmask = savemask; pthread_t thread; const int err = pthread_create(&thread, &attr, StartIoThreadMain, nullptr); diff --git a/src/node_watchdog.cc b/src/node_watchdog.cc index b8665dc1be225d..9ef7bafeded44f 100644 --- a/src/node_watchdog.cc +++ b/src/node_watchdog.cc @@ -187,7 +187,9 @@ int SigintWatchdogHelper::Start() { sigset_t sigmask; sigfillset(&sigmask); - CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &sigmask)); + sigset_t savemask; + CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, &savemask)); + sigmask = savemask; int ret = pthread_create(&thread_, nullptr, RunSigintWatchdog, nullptr); CHECK_EQ(0, pthread_sigmask(SIG_SETMASK, &sigmask, nullptr)); if (ret != 0) {